我有以下数组:
arr = [
[
[1, 2],
[3, 4],
[5, 6]
],
[
[7, 8],
[9, 10],
[11, 12]
],
[
[13, 14],
[15, 16],
[17, 18]
]
];
如何使用lodash减少以下内容:
[[9,12],[27,30],[45,48]]
我是一个完整的菜鸟。除此之外,我不知道该怎么做:
_.forEach(arr, function (n) {
console.log(JSON.stringify(_.zip(n)));
});
请一些提示。
答案 0 :(得分:3)
混合使用lodash(_.unzip()
和_.sum()
)和数组方法(Array#map()
):
var result = arr.map(function(a) {
return _.unzip(a).map(_.sum);
});
答案 1 :(得分:0)
与您的尝试类似,map
,zipWith
& add
有一些partialRight
帮助: - )
var zipAdd = _.partialRight(_.zipWith, _.add)
var result = _.map(arr, function(a) {
return zipAdd.apply(null, a)
});
var arr = [
[
[1, 2],
[3, 4],
[5, 6]
],
[
[7, 8],
[9, 10],
[11, 12]
],
[
[13, 14],
[15, 16],
[17, 18]
]
];
var zipAdd = _.partialRight(_.zipWith, _.add)
var result = _.map(arr, function(a) {
return zipAdd.apply(null, a)
});
alert(JSON.stringify(result));

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
&#13;