比较数组和两者是否匹配,推入新数组

时间:2017-08-27 14:41:01

标签: javascript arrays for-loop

我循环遍历一个名为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;
}
});

0 个答案:

没有答案