Immutable - change elements in array with slice (no splice)

后端 未结 6 1889
逝去的感伤
逝去的感伤 2021-01-11 10:44

How is possible to change 3/4 elements? Expected output is [1,2,4,3,5]

let list = [1,2,3,4,5];
const removeElement = list.indexOf(3); // remove number 3
list         


        
6条回答
  •  醉梦人生
    2021-01-11 11:23

    slice doesn't mutate the array on which it operates so you need to assign a value to what it returns

    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]
    

    If you are prepared to use ES2015 syntax, you can use the spread operator as follows:

    const removeElement = list.indexOf(3); // remove number 3
    var es6List = [
      ...list.slice(0, removeElement),
      ...list.slice(removeElement+1)
    ];
    console.log(es6List);
    

    fiddle

提交回复
热议问题