最佳答案
您可以使用_.zip
和_.map
,如下所示
var _ = require("underscore");
function sum(numbers) {
var result = 0;
for (var i = 0; i < numbers.length; i += 1) {
result += numbers[i];
}
return result;
}
console.log(_.map(_.zip([0, 1, 2, 3, 4], [1, 2, 3, 4, 5]), sum))
// [ 1, 3, 5, 7, 9 ]
由于总是只有两个数字,因此您可以像这样简化
var result = _.chain([0, 1, 2, 3, 4])
.zip([1, 2, 3, 4, 5])
.map(function(numbers) {
return numbers[0] + numbers[1];
})
.value();
console.log(result);
你可以让它更通用和干净一点,就像这样
function sum(numbers) {
return numbers.reduce(function(result, current) {
return result + current;
}, 0);
}
var result = _.chain([0, 1, 2, 3, 4])
.zip([1, 2, 3, 4, 5])
.map(sum)
.value();
或者更简单,就像第一个答案
console.log(_.map(_.zip([0, 1, 2, 3, 4], [1, 2, 3, 4, 5]), sum));
关于javascript - 下划线或lazy.js 映射 (0,1,2,3,4) + (1,2,3,4,5) ->(1,3,5,7,9),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24463866/