如何在Array中创建对象并推送到object-javascript?

时间:2018-10-03 11:37:48

标签: javascript jquery node.js

var TableData = [{
        str: "",
        val: "",
    }];

    TableData[0].str = "11";
    TableData[0].val = "22";

    TableData[1].str = "11";
    TableData[1].val = "22";

    console.log(TableData[0])

    // i need this output {str : "11", val : "22" }

但是我在控制台中有此消息:

未捕获的TypeError:无法读取未定义的属性'atr'

3 个答案:

答案 0 :(得分:2)

您获得Uncaught TypeError,将undefined视为对象。 TableData[1]undefined,而TableData[0]对象。您需要在设置属性之前将第二个元素设置为对象:

TableData[1] = {};
TableData[1].str = "11";
TableData[1].val = "22";

话虽如此,您也可以使用Array.prototype.push和对象文字:

TableData.push({
   str: "11"
   ...
})

答案 1 :(得分:1)

您出错,因为数组索引1中没有任何内容。在分配strval之前,将空对象放在索引上:

var TableData = [];

TableData[0] = {};
TableData[0].str = "11";
TableData[0].val = "22";

TableData[1] = {};
TableData[1].str = "11";
TableData[1].val = "22";

console.log(TableData[0])

答案 2 :(得分:-1)

尝试这么多

var TableData = [{
        str: "",
        val: "",
    }];

    TableData[0].str = "11";
    TableData[0].val = "22";


    console.log(TableData[0])

发生错误,因为您正在尝试为不存在的数组的索引1的元素分配某些内容