我是javascript的新手,在尝试实现以下功能时,偶然发现了一些问题。我试着搜索论坛 - 这样的问题可能已经解决了,但我不知道该搜索什么。这也是极具创意的标题:/
无论如何 - 这是我目前的代码:
var arraylength = 4;
var originalarray = new Array(new Array);
var originalarray = {
[1, 1, 1, 1]
[2, 2, 2, 2]
[3, 3, 3, 3]
[4, 4, 4, 4]
}
convertarray(originalarray, arraylength);
function convertarray(originalarray, arraylength){
var converedtarray = new Array(new Array);
var temparray = new Array;
temparray.length = arraylength;
for (h = 0; h < arraylength; h++) {
var temparray = [];
var temparray = originalarray[h].split('');
for (i = 0; i < arraylength; i++) {
converedtarray[h][i] = temparray[i];
}
}
return convertedarray;
}
我不完全确定代码是否能说明问题,但这对我想要实现的内容是伪的;
originalarray = 1111, 2222, 3333, 4444
converedtarray = 1234, 1324, 1234, 1234
有人可以告诉我,我错过了哪些部分或者给我一些我可以做的事情吗? 因为我得到&#34; TypeError:undefined不是一个对象&#34;在这一部分:
converedtarray[h][i] = temparray[i];
我绝不是一个专业的程序员 - 我知道代码并不漂亮,但这或多或少是试错的结果......实际上比试验更多的错误。
提前感谢您的回答!
答案 0 :(得分:0)
您的代码存在一些问题。首先,如果您想要一个nXn
数组,那么您已经定义了originalarray
错误。如果你正在思考的话,第二个new Array(new Array)
不会为你声明一个数组数组。你需要两个循环,因为你已经找到了第一个用于维护列而第二个用于行。
var arraylength = 4;
var originalarray = new Array();
var originalarray = [
[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3],
[4, 4, 4, 4]
]
console.log(convertarray(originalarray, arraylength));
function convertarray(originalarray, arraylength){
var converedtarray = new Array();
for (h = 0; h < arraylength; h++) {
converedtarray[h] = [];
for (i = 0; i < arraylength; i++) {
converedtarray[h].push(originalarray[i][h]);
}
}
return converedtarray;
}
&#13;
答案 1 :(得分:0)
可能的解决方案:
var arraylength = 4;
var originalarray = [
[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3],
[4, 4, 4, 4],
];
function convertarray(originalarray, arraylength) {
var result = [];
for (h = 0; h < arraylength; h++) {
result.push(
originalarray.map(function(subarray) {
return subarray[h];
})
);
}
return result;
}
console.log(
convertarray(originalarray, arraylength)
);
&#13;