我循环遍历一个名为race
的数组,其中有一个名为time
的数组。我需要将数组time
的内容与数组speed
的内容进行比较。如果两个内容完全匹配,我需要将race[i]
推入名为filtered
的空数组中。出于某种原因,当我运行此过滤器时,race
中的所有数组都会被推送到filtered
。知道为什么会这样做吗?这是代码:
angular
.module('raceApp')
.filter('certFilter', function() {
return function(race, speed) {
var filtered = [];
for (var i = 0; i < race.length; i++) {
for (var k = 0; k < race[i].data.time.length; k++) {
for (var j = 0; j < speed.length; j++) {
if (race[i].data.time[k] === speed[j] && filtered.indexOf(race[i]) == -1) {
filtered.push(race[i]);
} else {
filtered.splice(i, 1);
}
}
}
}
console.log('filtered', filtered);
return filtered;
}
});
console.log('filtered', filtered);
return filtered;
}
});