Nest Javascript 对象不接受推送方法。类型错误:无法读取未定义的属性“push””

我试图将变量推入嵌套对象中的属性,但 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');


一只萌萌小番薯
浏览 45回答 3
3回答

摇曳的蔷薇

您可以为此使用 concat 方法。就像:collection[5439]["track"].concat('c');

阿波罗的战车

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秒到达战场

collection[5439]["tracks"].push('c');改为:(track不是tracks)collection[5439]["track"].push('c');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript