如何从列表中删除项目而不扭曲原始列表

时间:2017-05-02 20:48:48

标签: javascript

这就是我想要做的,我有一个数组

var arr = [1, 2, 3, 4, 5];

然后我想通过删除项目一次创建一个新数组,即当我删除索引0处的项目时我应该[2, 3, 4, 5]当我删除索引1处的项目时,我应该{{1直到我到达[1, 3, 4, 5]并且每次删除项目时我仍然希望我的arr.length-1完整不变 使用javaScript我已经尝试了一些数组方法,如splice,slice但所有这些都改变了arr的值 我如何使用javascript或python进行处理。

3 个答案:

答案 0 :(得分:0)

对于JavaScript:

尝试使用slice()制作副本(切片返回您可以操作而不影响原始数组的数组的浅表副本),然后使用splice()删除所需索引处的值:< / p>

newArray = slice(arr).splice(index, 1);

答案 1 :(得分:0)

对于Python:

  

array = [1,2,3,4,5];

     

newarray = [计数器的值,枚举值(数组),如果计数器!= 0]

每次你使用这个列表理解PS时,数组都不会被修改!所以基本上你会为newarray获得相同的输出。

如果你想每次删除一个元素时都需要创建一个函数而不是列表理解(当然它可能但可能会更不易读)。

答案 2 :(得分:0)

对于Javascript,使用ES6数组扩展运算符和切片方法,

var new_array = [...a.slice(0, index), ...a.slice(index + 1)];

const cut = (a, i) => [...a.slice(0, i), ...a.slice(i + 1)];

let arr = [2, 2, 2, 4, 2];
console.log(cut(arr, 3));
console.log(arr);