【发布时间】:2017-07-07 01:36:45
【问题描述】:
我正在尝试从这个名为“bigArray”的数组中删除重复项,同时保持数组的前三个位置不变(即使它们重复)。
我的问题是 for 循环内的 splice() 无法正常工作,因为每次拼接时,for 循环都会跳过数组的下一个位置(因为该位置是数组中较低的一个位置)。
如何让我的函数返回 [0,0,0,3,2] ?
谢谢
var bigArray = [0,0,0,3,2,2,3,3,2];
function call() {
for (let i=3; i < (bigArray.length); i++) {
if (bigArray.indexOf(bigArray[i]) !== i) {
bigArray.splice(i,1);
}
}
console.log(bigArray);
return bigArray;
}
call();
【问题讨论】:
-
所以你不应该修改原始数组..尝试使用 filter()
-
@guijob 可以修改原始数组,只将迭代改为向后
标签: javascript arrays