这就是我要做的事情:
我执行脚本后没有出现任何错误,但没有任何更改或正在进行任何更改。
这是我的JSON对象,存储在doc
{
"name":"aaa"
"test":[
{ "carl":[
"huh",
"two"
]
}
]
}
这是我正在运行的脚本:
doc.test.forEach(function(emp){
emp.carl.forEach(function(pass){
pass="change";
});
});
但是没有做出任何改变,或者是什么,出了什么问题?
预期输出:将carl
内的所有元素更改为changed
。所有test
元素都将包含一个包含字符串数组的属性carl
。
答案 0 :(得分:3)
将参数分配给某个值将不会在该函数之外产生任何影响。
相反,您应该分配一个属性:
emp.carl.forEach(function(pass, i, arr){
arr[i] = "change";
});
var doc = {
"name": "aaa",
"test": [{
"carl": [
"huh",
"two"
]
}]
};
doc.test.forEach(function(emp) {
emp.carl.forEach(function(pass, i, arr) {
arr[i] = "change";
});
});
console.log(doc);
答案 1 :(得分:0)
我的猜测是你真的需要修改对象。类似的东西:
emp.carl.forEach(function(pass, i){
emp.carl[i]="change";
});