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
中的数组项。谢谢,但它没有更改。这样做了。非常感谢。