我正在尝试解决一个问题,该问题说明要移除(删除)数组中的最小数字,而不更改最小元素左侧的元素顺序。我的代码是 -:
function removeSmallest(numbers){
var x = Math.min.apply(null,numbers);
var y = numbers.indexOf(x);
numbers.splice(y,1);
return numbers;
}
在说明中严格给出了不要改变原始数组/列表。但是我收到一条错误消息,指出您已更改原始数组/列表。 如何删除错误?
最佳答案
听着不要在这里使用 SPLICE。菜鸟和专家在不考虑效果的情况下交替使用拼接和切片时会犯很多众所周知的错误。
SPLICE 将改变原始数组,而 SLICE 将浅拷贝原始数组并在给定条件下返回数组的一部分。
这里Slice会创建一个新数组
const slicedArray = numbers.slice()
const result = slicedArray.splice(y,1);
并且您无需改变原始数组即可获得结果。
关于javascript - 修改数组而不改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52011541/