不可变-使用切片更改数组中的元素(无拼接) [英] Immutable - change elements in array with slice (no splice)

查看:86
本文介绍了不可变-使用切片更改数组中的元素(无拼接)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何更改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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆