当我尝试使用循环在 JavaScript 中创建二维数组时,出现以下错误:
Cannot set property 'indexis' of undefined
代码:
var indexes = [];
for (var i = 0; i < headingsArray.length; i++) {
if (headingsArray[i].toLowerCase().indexOf('name') != -1) {
indexes[i]['indexis'] = i;
indexes[i]['headingis'] = headingsArray[i]; //assuming headingsArray exist
indexes[i]['valueis'] = rows[0][i]; //assuming rows exist
}
}
最佳答案
您还需要创建内部数组/对象,否则 index[i]
未定义,因此 index[i]['indexis']
将抛出一个异常(exception)。
var indexes = [];
for (var i = 0; i < headingsArray.length; i++) {
indexes[i] = {}; //<---- need this
if (headingsArray[i].toLowerCase().indexOf('name') != -1) {
indexes[i]['indexis'] = i;
indexes[i]['headingis'] = headingsArray[i];
indexes[i]['valueis'] = rows[0][i];
}
}
您将其描述为多维数组,但您将其视为对象数组(因为您正在访问命名属性,而不是编号属性)。所以我的示例代码是在每次迭代时创建对象。如果您打算拥有一个数组数组,请执行 indexes[i] = []
,并与 indexes[i][0]
而不是 等内容进行交互>indexes[i]['indexis']
关于javascript - 二维数组填充不起作用javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46302626/