const bringToTop = (arr, index) => [arr[index], ...arr.filter((_, i) => i !== index)];
bringToTop(['A', 'B', 'C', 'D'], 2); // ['C', 'A', 'B', 'D']
let a = ['a', 'b', 'c', 'd'];
const pin2Top = (index, list) => [...list.splice(index, 1), ...list];
pin2Top(2, a);
// ["c", "a", "b", "d"]
let a = ['a', 'b', 'c', 'd']; const pin2Top = (index, list) => [...list.splice(index, 1), ...list]; pin2Top(2, a); // ["c", "a", "b", "d"]
我也考虑过用splice,但是该操作会mutate原数组,感觉还是返回新数组比较妥
let a = ['a', 'b', 'c', 'd']; const pin2Top = (index, list) => [...list.splice(index, 1), ...list]; pin2Top(2, a); // ["c", "a", "b", "d"]我也考虑过用
splice,但是该操作会mutate原数组,感觉还是返回新数组比较妥
对,没考虑到副作用。
Most helpful comment