javascript - 在这个特定的脚本中,什么方法减少理解为累加器
问题描述
在这个特定的脚本中,我无法理解 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]);