为了账号安全,请及时绑定邮箱和手机立即绑定

在JavaScript中转换2D数组

在JavaScript中转换2D数组

温温酱 2019-07-02 10:15:40
在JavaScript中转换2D数组我有一个数组,类似于:[     [1,2,3],     [1,2,3],     [1,2,3],]我想转接它以得到以下数组:[     [1,1,1],     [2,2,2],     [3,3,3],]使用循环以编程方式这样做并不困难:function transposeArray(array, arrayLength){     var newArray = [];     for(var i = 0; i < array.length; i++){         newArray.push([]);     };     for(var i = 0; i < array.length; i++){         for(var j = 0; j < arrayLength; j++){             newArray[j].push(array[i][j]);         };     };     return newArray;}然而,这似乎很笨重,我觉得应该有一个更简单的方法来做到这一点。在那里吗?
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

array[0].map((col, i) => array.map(row => row[i]));

map打电话callback按顺序对数组中的每个元素执行一次函数,并根据结果构造一个新数组。callback只对已赋值的数组的索引调用;对已删除或从未被赋值的索引调用。

callback使用三个参数调用:元素的值、元素的索引和正在遍历的Array对象。[来源]


查看完整回答
反对 回复 2019-07-02
?
MM们

TA贡献1886条经验 获得超2个赞

你可以用底盘.js

_.zip.apply(_, [[1,2,3], [1,2,3], [1,2,3]])


查看完整回答
反对 回复 2019-07-02
?
慕容森

TA贡献1853条经验 获得超18个赞

以下是我在现代浏览器中的实现(没有依赖关系):

transpose = m => m[0].map((x,i) => m.map(x => x[i]))


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 536 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信