如何在数组变量中声明对象。它显示以下错误
" TypeError:无法设置属性' name'未定义"
这是代码:
let data = []
data[0].name = "john"
答案 0 :(得分:2)
在设置该对象的属性之前,您需要将数组的第一个元素声明为对象。
其中一种方法是:
let data = [];
data[0] = {};
data[0].name = "john";
答案 1 :(得分:2)
您收到错误,因为data
是一个空数组,因此data
数组在0
位置没有任何元素。因此,当您尝试访问data[0]
(,您可以在控制台中检查)时,您将获得undefined
。任何尝试将新name
属性设置为undefined
的行为都会导致Cannot set property 'name' of undefined"
错误。您可以通过多种方式解决此问题,其中一种方法就是按下新对象:
let data = []
data.push({ name : "john"});
console.log(data)
或者,您也可以尝试先将data[0]
声明为空对象,以便之后可以为其指定任何新属性,如:
let data = [];
data[0] = {};
console.log(typeof data[0]); // This is not undefined anymore
data[0].name = "john";
console.log(data)
答案 2 :(得分:0)
那将是
让data = []; data [0] = {“name”:“john”}