多维数组 JAVASCRIPT 出了点问题
multidimensional array JAVASCRIPT something wrong
嘿伙计们,我需要 soe 帮助,请:P
这段代码有什么问题?
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var narr = []; // want to be like that [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
function arange(mass) {
for (var i = 0; i < mass.length; i++) {
for (var j = 0; j < mass[i].length; j++) {
narr[mass[i]].push(mass[j][i]);
}
}
}
如果我调用该函数,则存在一个问题:"类型错误:无法读取未定义的属性'push'。谢谢。也链接到这里
您不小心尝试在值 narr
上调用 push
,而不是在数组本身上调用。当然,基元值没有定义push
函数。您的代码应如下所示:
var mass = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var narr = [];
function arange(mass) {
for (var i = 0; i < mass.length; i++) {
var innerArray = [];
for (var j = 0; j < mass[i].length; j++) {
innerArray.push(mass[j][i]);
}
narr.push(innerArray);
}
}
只需使用正确的 elememt 来分配值。
var arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
function arange(mass) {
var narr = [];
for (var i = 0; i < mass.length; i++) {
for (var j = 0; j < mass[i].length; j++) {
narr[j] = narr[j] || [];
narr[j][i] = mass[i][j];
}
}
return narr;
}
document.write('<pre>' + JSON.stringify(arange(arr), 0, 4) + '</pre>');
ES6
var arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
function arange(mass) {
var narr = [];
mass.forEach((a, i) => a.forEach((b, j) => {
narr[j] = narr[j] || [];
narr[j][i] = mass[i][j];
}));
return narr;
}
document.write('<pre>' + JSON.stringify(arange(arr), 0, 4) + '</pre>');
或者
你可以用这个ES6
一个衬里
var arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
var res = arr.map((e, i) => e.map((_, j) => arr[j][i]));
document.write(JSON.stringify(res));
您需要添加一个临时数组来存储中间值:
var arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
var narr = [];
function arange(mass) {
for (var i = 0; i < mass.length; i++) {
var t = []; // temporary array
for (var j = 0; j < mass[i].length; j++) {
t.push(mass[j][i]);
}
narr.push(t);
}
}
arange(arr);
document.write(JSON.stringify(narr));
相关文章:
- 我不知道我的编码有什么问题.(JavaScript)
- 登录后重定向,缓存页面问题-Javascript
- 在我的网站上创建一个在1-10之间不断变化的数字时遇到了问题.Javascript
- 浮点数字问题JavaScript
- 局部全局变量问题 - JavaScript
- 内容滑块问题 javascript
- 多个脚本导致链接问题?Javascript、CSS、HTML、Jquery
- 基本范围问题(javascript和node)
- 表单验证问题(Javascript)
- 表杂乱无章的问题.Javascript HTML5.
- 我的代码有什么问题.JavaScript幻灯片
- 这段代码有什么问题?(JavaScript)
- 浏览器和移动设备的视差背景问题(javascript/jquery)
- Mozilla中的setInterval()问题(Javascript函数)
- While循环问题-JavaScript-jQuery.Clone()
- 检查密码匹配问题(JavaScript)
- 抓取选中单选按钮的问题- JavaScript
- 基于下拉选择禁用文本字段的问题(JavaScript)
- 比较日期问题- javascript
- 浏览器兼容性问题Javascript