怎樣才能切入3/4元素?預期輸出爲[1,2,4,3,5]不可變 - 更改元素與切片陣列(無拼接)
let list = [1,2,3,4,5];
const removeElement = list.indexOf(3); // remove number 3
list.slice(0, removeElement).concat(list.slice(removeElement+1)) // [1,2,4,5]
...下一個推數3而不剪接號4後
怎樣才能切入3/4元素?預期輸出爲[1,2,4,3,5]不可變 - 更改元素與切片陣列(無拼接)
let list = [1,2,3,4,5];
const removeElement = list.indexOf(3); // remove number 3
list.slice(0, removeElement).concat(list.slice(removeElement+1)) // [1,2,4,5]
...下一個推數3而不剪接號4後
所操作切片不發生變異陣列所以你需要一個值分配給它返回什麼
let list = [1,2,3,4,5];
const removeElement = list.indexOf(3); // remove number 3
var newList = list.slice(0, removeElement).concat(list.slice(removeElement+1)) // [1,2,4,5]
如果你準備使用ES2015的語法,您可以使用傳播操作如下:
const removeElement = list.indexOf(3); // remove number 3
var es6List = [
...list.slice(0, removeElement),
...list.slice(removeElement+1)
];
console.log(es6List);
var list = [1,2,3,4,5];
var numToRemove = 3;
var removeElementIndex = list.indexOf(numToRemove);
var afterRemoveElement = list[removeElementIndex+1];
list.slice(0, removeElementIndex).concat(afterRemoveElement).concat(numToRemove).concat(list.slice(removeElementIndex+2)) // [1,2,4,3,5]
寫這個最簡單的方法是使用傳播運營商:
let newList = [...list.slice(0, 2), list[4], list[3], ...list.slice(4)];
數組是對象,使用Object.assign()和接入元素與屬性名稱的表達式。
var numToMove = 2;
console.log(Object.assign(list, {[numToMove]: list[numToMove+1]},
{[numToMove+1]: list[numToMove]}));
// [1, 2, 4, 3, 5]
但爲什麼不拼接? Splice專爲此目的而設計... – Dellirium