我有这样的功能:
removeDuplicates(item: String, allForToday: Array) {
let temp = allForToday;
for (let i = 0; i < temp.length; i++) {
if (temp[i].indexOf(item) > -1) {
temp = temp.splice(i, 1);
}
}
return temp;
}
我称之为:
for (let i = 0; i < lastWeekItems.length; i++) {
allForToday = t.removeDuplicates(lastWeekItems[i], allForToday);
}
传递的lastweekItems[i]
是一个字符串,allForToday是一个字符串数组,如下所示:1;2;3
。 lastweekItems [i]然后可以是例如2
我期待的是要检查每个项目的整个数组,如果找到该项目,则从数组中删除它所找到的条目,但我看到的是只检查temp [0],然后拼接整个剩余的部分,并返回空(temp.length从14变为1)......
答案 0 :(得分:0)
如果您只想删除重复项,可以使用如下缩减器:
var arr = [1, 2, 3, 4, 5, 5, 4, 3, 2, 1];
var newArr = arr.reduce(function(acc, val) {
if(acc.indexOf(val) === -1) {
acc.push(val);
}
return acc;
}, []);
console.log(newArr);
newArr数组仅包含非重复值。