使用lodash找到转置矩阵

时间:2015-04-17 20:19:28

标签: javascript algorithm transpose lodash

我有一个数组:

  

[      [1,2,3],      [4,5,6]   ]

如何将其转换为

  

[      [1,4],      [2,5],      [3,6]   ]

我确信这是我可以用lodash轻松完成的事情,但我没有在文档中找到它。

2 个答案:

答案 0 :(得分:7)

使用lodash的解决方案

m = [ [1,2,3], [4,5,6] ];
t = _.zip.apply(_, m);
// result t = [ [1,4], [2,5], [3,6] ]
m = [ [1,1,1,1], [2,2,2,2], [3,3,3,3] ]
t = _.zip.apply(_, m);
// result t = [ [1,2,3], [1,2,3], [1,2,3], [1,2,3] ]

说明:

apply:调用具有给定值的函数,并将参数作为数组传递.....与_.zip(arg0,arg1,arg2)类似_.zip.apply(null, m)其中m = [arg0,arg1,arg2]

答案 1 :(得分:0)

_.zip(['fred', 'barney'], [30, 40], [true, false]); // → [['fred', 30, true], ['barney', 40, false]] // Official documentation

官方文件。 https://lodash.com/docs#zip