不可变-使用切片更改数组中的元素(无拼接) [英] Immutable - change elements in array with slice (no splice)
本文介绍了不可变-使用切片更改数组中的元素(无拼接)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何更改3/4个元素?预期输出为[1,2,4,3,5]
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.slice(0, removeElement).concat(list.slice(removeElement+1)) // [1,2,4,5]
...在没有接头的情况下,在编号4之后的下一个编号3
...next push number 3 after number 4 without splice
推荐答案
slice 不会改变其操作所在的数组,因此您需要为其返回的值分配一个值
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]
如果准备使用ES2015语法,则可以按以下方式使用 spread 运算符:
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);
这篇关于不可变-使用切片更改数组中的元素(无拼接)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文