【发布时间】:2017-03-28 02:02:54
【问题描述】:
我正在尝试将列转换为行:
var input = [
["aaa","111","zzz"],
["bbb","222","xxx"],
["ccc","333","yyy"]
];
到这个:
input = [
["aaa","bbb","ccc"],
["111","222","333"],
["zzz","xxx","yyy"],
];
这里我做了什么,为什么 output[j].push(input [i][j]); 没用?,我只需要输出[j] ...'j'正在循环吗? 我做了手动,它有效,我做了所有的研究,但我的大脑还不够好,所以有人能解释一下吗?我是个新手。我需要有人来找出我的错误,因为我总是在想我的逻辑是否真的正确,但为什么它不起作用。这让我很困惑,无法学习另一种方式。
function dataHandling(){
var output = [];
for (var i=0; i < input.length ; i++){
output.push([]);
//console.log(i)
for (var j =0; j < input[i].length ; j++){
output[j].push(input[i][j]);
}
}
console.log(output);
}
// console.log(len2);
var input = [
["aaa","111","zzz"],
["bbb","222","xxx"],
["ccc","333","yyy"]
];
dataHandling(input);
编辑:这可以在不传递参数的情况下应用吗?并保持 dataHandling() 为空,但感谢您的回答,我正在努力学习它。
编辑2:同时>> output[i].push(input[j][i]);给我答案,是的,它的工作,但 如果我改变不对称矩阵 如果我将输入更改为:
var input = [
["0001", "Roman Alamsyah", "Bandar Lampung", "21/05/1989", "Membaca"],
["0002", "Dika Sembiring", "Medan", "10/10/1992", "Bermain Gitar"],
["0003", "Winona", "Ambon", "25/12/1965", "Memasak"],
["0004", "Bintang Senjaya", "Martapura", "6/4/1970", "Berkebun"]
];
为什么它根本不起作用? jsbin中的错误。
【问题讨论】:
-
这被称为转置矩阵顺便说一句。
标签: javascript arrays matrix multidimensional-array push