我一直在改变未知深度的数组值。
我希望迭代它并更改特定值,在完成所有更改后,我希望通过应用的更改接收整个数组。
代码示例:
var array = [];
array.name = "Page";
array.inside = [];
array.inside.name = "Page inside";
array.inside.inside = [];
array.inside.inside.name = "Page inside inside";
array.inside.inside.inside = [];
function changeValue(array) {
for (var ii in array) {
if (typeof array[ii] === 'object') changeValue(array[ii]);
if (array.name) {
array.name = array.name + " changed";
}
console.log(array);
}
}
changeValue(array);
答案 0 :(得分:0)
试试这个:
var array = [];
array.name = "Page";
array.inside = [];
array.inside.name = "Page inside";
array.inside.inside = [];
array.inside.inside.name = "Page inside inside";
array.inside.inside.inside = [];
function changeValue(array) {
if (array.name) {
array.name = array.name + " changed";
}
console.log(array);
for (var ii in array) {
if (typeof array[ii] === 'object') changeValue(array[ii]);
}
}
changeValue(array);
每次循环都会改变array.name。这就是为什么你的结果“改变了”。将array.name修改带出循环,它可以正常工作。
祝你好运。