javascript - 二维数组填充不起作用javascript

标签 javascript jquery arrays

当我尝试使用循环在 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/

相关文章:

javascript - jQuery 文件上传预览/删除图像不适用于新输入

javascript - 如何在div中添加元素

javascript - 在 extjs 中扩展电子邮件验证

javascript - html页面中的表格行数

javascript - 如何获取数组中每个项目的最后一个元素子元素,然后在单击它们时显示它们

java - 我不明白为什么它说 ArrayOutOfBound 错误

C++:扩展数组的函数

javascript - 在 JavaScript 中查找数组中的最大整数

javascript - 创建iframe中的js对象

javascript - 序列化选择