Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NodeJS中创建对象键到字段对,表示';没有定义_Javascript_Node.js_Data Structures_Javascript Objects - Fatal编程技术网

Javascript 在NodeJS中创建对象键到字段对,表示';没有定义

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

我是Javascript新手,我想知道为什么在创建以下对象时

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[地址]
未定义