javascript - 将行数组转换为列数组

标签 javascript coffeescript

将任意(等长)行数组转换为列数组的最优雅方法是什么?

例如:

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

# To    

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

这是我目前所拥有的:

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

grid2 = []

for i in grid[0]
  grid2.push []

for row, y in grid
  for el, x in row
    grid2[x].push el

是否有 1-liner 可以做到这一点?

最佳答案

在 Javascript 中,如果您在使用 ECMAScript 5 数组方法的环境中工作,map() 函数可以很好地用于此:

var grid2 = grid[0].map(function(col, i) {
    return grid.map(function(row) {
        return row[i];
    });
});

如果您取消换行符,这可能是单行代码。 :)

CoffeeScript :

grid[0].map (col, i) -> grid.map (row) -> row[i]

关于javascript - 将行数组转换为列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5971389/

相关文章:

javascript - 如何静音或降低 IMA 广告的音量?

javascript - JavaScript 中的 JSON 行提取问题

JavaScript - 事件 relatedTarget 不适用于 onClick

javascript - Angular-Service Array.filter 与基本 for 循环

javascript - 使用CSS3制作流畅的慢速滚动

javascript - Coffeescript、类和 Zepto.js

node.js - 如何使用 Express 和 Node JS 构建不区分大小写的 REST API

javascript - Angular $resource 总是调用成功回调

Javascript Object.defineProperty 设置属性更改时触发的方法

javascript - CoffeeScript - 我应该回电吗?