我有一些大型数据对象以记录格式返回给我,作为一个数组数组。列标题位于索引0处的数组中,行标题位于每个数组的索引0中。有时,需要翻译(转动)所有记录,以便行成为列,列成为行。
例如:
const what_i_have = [
[1,1,1,1],
[2,2,2,2],
[3,3,3,3],
[4,4,4,4]
]
const what_i_need = [
[1,2,3,4],
[1,2,3,4],
[1,2,3,4],
[1,2,3,4]
]
答案 0 :(得分:1)
如果您知道每个子数组具有相同的长度,最简单的方法是创建一个具有输入数组子节点长度的空数组。然后你可以只映射它并使用地图中的索引用原始数组中的值填充它。
function pivot (table) {
return Array(table[0].length).fill() // Create array with desired length
.map((row, i) => // Map over the new rows
table.map(col => col[i]) // Fill them by mapping over old rows
)
}