是否可以链接zip
来转置数组数组?
var data = _(raw)
.map(function(d) { return d.events; })
.zip() // how do I do this step?
.map(function(d) {
return {
time: d[0].time,
total: _.reduce(d, function(total, event) { return total += event.amount; })
};
});
The docs展示如何转置数组,但不作为链的一部分:
_.zip.apply(_, arrayOfRowsOfData);
答案 0 :(得分:3)
你可以添加一个mixin并在你的链中调用它:
_.mixin( { zipMeUp: function(arrays){
return _.zip.apply(_, arrays);
}});
var result = _.chain(data)
.zipMeUp()
.value();
答案 1 :(得分:2)
您可能想要在输入为列表列表的链中尝试unzip
。我们几乎最终写了一个mixin,但后来读了similar issue。
JSON.stringify(_([['john', 'jill'], [20, 40]]).zip().value())
=> "[[["john","jill"]],[[20,40]]]"
JSON.stringify(_([['john', 'jill'], [20, 40]]).unzip().value())
=> "[["john",20],["jill",40]]"