Javascript 在NodeJS中创建对象键到字段对,表示';没有定义
我是Javascript新手,我想知道为什么在创建以下对象时Javascript 在NodeJS中创建对象键到字段对,表示';没有定义,javascript,node.js,data-structures,javascript-objects,Javascript,Node.js,Data Structures,Javascript Objects,我是Javascript新手,我想知道为什么在创建以下对象时 this.prospectCollection = {}; 我无法使用添加对象 (参考第14行) 我想给对象动态名称,我使用括号表示法,但它给了我控制台中的这个错误 this.prospectCollection[address][num] = 1; ^ TypeError: Cannot set property '0.000000000
this.prospectCollection = {};
我无法使用添加对象
(参考第14行)
我想给对象动态名称,我使用括号表示法,但它给了我控制台中的这个错误
this.prospectCollection[address][num] = 1;
^
TypeError: Cannot set property '0.00000000001' of undefined
任何帮助或见解都将不胜感激
编辑:
是不是
this.prospectCollection={[address]:{[num]:1}代码>?但是,这不会将它分配给它,并且不能像数组那样.push()东西吗?基本上,代码的关键部分可以这样重写:
if(!(address in this.prospectCollection))
{
this.prospectCollection[address][num] = 1;
}
但这并不正确,因为您基本上是在尝试访问未定义的属性(即this.prospectCollection[address]
)。在JS中没有
一种可能的方法是创建一个不存在的对象(手动活体化):
另一个可行的选择是使用一些提供自动激活的库函数,例如。它可以简洁到
const path = ['prospectCollection', address, num];
_.set(this, path, _.get(this, path, 0) + 1);
基本上,代码的关键部分可以这样重写:
if(!(address in this.prospectCollection))
{
this.prospectCollection[address][num] = 1;
}
但这并不正确,因为您基本上是在尝试访问未定义的属性(即this.prospectCollection[address]
)。在JS中没有
一种可能的方法是创建一个不存在的对象(手动活体化):
另一个可行的选择是使用一些提供自动激活的库函数,例如。它可以简洁到
const path = ['prospectCollection', address, num];
_.set(this, path, _.get(this, path, 0) + 1);
此.prospectCollection[地址]
未定义此.prospectCollection[地址]
未定义