首页 > 解决方案 > 在这个特定的脚本中,什么方法减少理解为累加器

问题描述

在这个特定的脚本中,我无法理解 reduce 是如何工作的。我虽然 reduce 总是将第一个参数视为累加器,但在这种情况下 var result = [] 似乎是累加器,或者我错了。最初我明白函数 symDiff (arrayOne) 的第一个参数应该是 reduce 方法的累加器。

  function sym() {
  var args = [];
  for (var i = 0; i < arguments.length; i++) {
    args.push(arguments[i]);
  }


    function symDiff(arrayOne, arrayTwo) {
    var result = [];

    arrayOne.forEach(function(item) {
      if (arrayTwo.indexOf(item) < 0 && result.indexOf(item) < 0) {
        result.push(item);
      }
    });

    arrayTwo.forEach(function(item) {
      if (arrayOne.indexOf(item) < 0 && result.indexOf(item) < 0) {
        result.push(item);
      }
    });

      return result;
    }

// Apply reduce method to args array, using the symDiff function
return args.reduce(symDiff);
}


sym([1, 2, 3], [5, 2, 1, 4]);

标签: javascriptreduce

解决方案


推荐阅读