Javascript 如何向可能不存在的对象添加字段?
我有一个Javascript 如何向可能不存在的对象添加字段?,javascript,Javascript,我有一个this.\u champ对象(默认情况下未定义) 我浏览了一个数组,并希望使用以下值添加此字段:this.\u champ[champ.name][ele.infos[0].StackableRangeName]=ele.value但是在第一次迭代时,[champ.name]是未定义的,而[ele.infos[0].StackableRangeName]总是未定义的,如何管理 我尝试了这个三元运算符,但它不起作用: this.champ[champ.name] != und
this.\u champ
对象(默认情况下未定义)
我浏览了一个数组,并希望使用以下值添加此字段:this.\u champ[champ.name][ele.infos[0].StackableRangeName]=ele.value
但是在第一次迭代时,[champ.name]是未定义的
,而[ele.infos[0].StackableRangeName]
总是未定义的
,如何管理
我尝试了这个三元运算符,但它不起作用:
this.champ[champ.name] != undefined ? this._champ[champ.name].push({ele.infos[0].StackableRangeName: ele.value}) : this._champ.push({champ.name: {ele.infos[0].StackableRangeName: ele.value}})
只需检查钥匙是否存在。然后推送值:
if(this.champ && !this.champ.hasOwnProperty(champ.name)) {
this.champ[champ.name] = [];
}
this._champ[champ.name].push({ele.infos[0].StackableRangeName: ele.value});
只需检查钥匙是否存在。然后推送值:
if(this.champ && !this.champ.hasOwnProperty(champ.name)) {
this.champ[champ.name] = [];
}
this._champ[champ.name].push({ele.infos[0].StackableRangeName: ele.value});
这是一种常用的习惯用法,用于在尚未设置默认值的情况下初始化某些内容:
this.champ[champ.name] = this.champ[champ.name] || []
这是一种常用的习惯用法,用于在尚未设置默认值的情况下初始化某些内容:
this.champ[champ.name] = this.champ[champ.name] || []
如果它不存在,你就不能添加任何内容。您或者需要确保它存在,然后向其中添加一些内容,或者将所需数据存储在其他位置,并在创建对象后进行设置。很遗憾,我们无法以其他方式管理它:(为什么会感到羞耻?在任何语言中,在推送元素之前,您都必须告诉自己对象是数组。这是常识。如果它不存在,您就不能向它添加任何内容。您要么需要确保它存在,然后向它添加一些内容,要么将需要的数据存储在其他地方,并在对象创建后进行设置。这是我们无法管理的羞耻换句话说:(为什么是羞耻?在任何语言中,你必须在推送元素之前告诉你的对象是数组。这是常识。谢谢你,这正是我想要的如果它解决了问题,你应该接受答案。谢谢你,这正是我想要的如果它解决了问题,你应该接受答案。