Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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 嵌套的forEach不';不要改变它的元素_Javascript_Mongodb - Fatal编程技术网

Javascript 嵌套的forEach不';不要改变它的元素

Javascript 嵌套的forEach不';不要改变它的元素,javascript,mongodb,Javascript,Mongodb,这就是我想做的: 执行脚本后,我没有收到任何错误,但没有进行任何更改 这是存储在doc { "name":"aaa" "test":[ { "carl":[ "huh", "two" ] } ] } 这是我正在运行的脚本: doc.test.forEach(function(emp){ emp.c

这就是我想做的:

执行脚本后,我没有收到任何错误,但没有进行任何更改

这是存储在
doc

{
"name":"aaa"
"test":[
           { "carl":[
                      "huh",
                      "two"
                    ]
           }
       ]
}
这是我正在运行的脚本:

doc.test.forEach(function(emp){
      emp.carl.forEach(function(pass){
      pass="change";
      });
}); 
但是没有任何改变,或者说,出了什么问题


预期输出:将
carl
中的所有元素更改为
changed
。所有
test
元素都将包含一个属性
carl
,该属性包含一个字符串数组。

我猜您实际上需要修改对象。比如:

emp.carl.forEach(function(pass, i){
    emp.carl[i]="change";
});

将参数指定给某个值在该函数之外不会产生任何效果

相反,您应该指定一个属性:

emp.carl.forEach(function(pass, i, arr){
  arr[i] = "change";
});
var doc={
“名称”:“aaa”,
“测试”:[{
“卡尔”:[
“嗯”,
“两个”
]
}]
};
文件测试forEach(功能(emp){
emp.carl.forEach(功能(通行、i、arr){
arr[i]=“变更”;
});
});

控制台日志(doc)
预期的输出是什么?哎呀,我想把
carl
中的所有元素都改成
change
数组中的每个对象都有一个名为
carl
的属性,还是只有一个?是的,会有carl property。让我编辑我的问题
pass
只保存值
“huh”
“two”
,它没有引用
carl
中的数组项。谢谢,但它没有更改。这样做了。非常感谢。