我试图将变量推入嵌套对象中的属性,但 Javascript 不断给出此错误: TypeError: Cannot read property 'push' of undefined"但是,如果我声明一个嵌套变量并使用它来推送,它就可以工作。为什么 JavaScript 有这种行为?有没有办法在不声明嵌套变量和不声明空数组的情况下执行此操作?var collection = { 5439: { albumTitle: 'ABBA Gold' } };collection[5439]["track"] = [''];console.log(collection[5439].track);// nested = collection[5439]["track"];// nested.push('c') // this works// console.log(nest)collection[5439]["tracks"].push('c');
3 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
collection[5439]["tracks"].push('c');错误是这一行,因为collection[5439]["tracks"]未定义并且不是数组。
尝试这样的事情,如果不存在则使用??(无效合并运算符)进行初始化
var collection = {
5439: {
albumTitle: 'ABBA Gold'
}
};
(collection[5439]["tracks"] ??= []).push("hello");
console.log(collection[5439]["tracks"])
30秒到达战场
TA贡献1828条经验 获得超6个赞
collection[5439]["tracks"].push('c');
改为:(track
不是tracks
)
collection[5439]["track"].push('c');
添加回答
举报
0/150
提交
取消