gpt4 book ai didi

javascript - 如何动态遍历 JSON 数据并进行更改..?

转载 作者:行者123 更新时间:2023-11-28 10:58:43 25 4
gpt4 key购买 nike

我有一个像 JSON 格式的 map 数据

var map =  {        
level1 : {
x : {name:'level1 x' , },
y : {name:'level1 y'}
},
level2 : {
x : {name:'level2 x'},
y : {name:'level2 y'}
}

}

我需要遍历这些数据,我将遍历路径作为字符串

"level1 x name" , "level2 y name";

我如何解析该字符串路径中的 JSON 数据..??

我尝试的是,

var path = "level1 x name".split(" ");
var pointer = map; // assuming it will take reference of map and change will cause to map also
for (var i = 0, len = path.length; i < len; i++) {
if(pointer){
pointer = pointer[path[i]];
}else{
pointer = map[path[i]];
}
}
pointer = "level1 xx";

console.log(map);

但是 map 数据没有改变..如何循环引用并更改值..?

最佳答案

这就是你获得值(value)的方式:

var name = [map].concat("level1 x name".split(" ")).reduce(function(prev, curr) {
return prev[curr];
});

console.log(name);

// -> 'level1 x'

JavaScript 按值传递参数,而不是按引用传递参数。

为了您的方便,我更改了您的代码以完成您的要求:

var path = "level1 x name".split(" ");
var pointer = map; // assuming it will take reference of map and change will cause to map also
for (var i = 0, len = path.length-1; i < len; i++) {
if(pointer){
pointer = pointer[path[i]];
}else{
pointer = map[path[i]];
}
}
pointer[path[path.length-1]] = "level1 xx";

console.log(map);

关于javascript - 如何动态遍历 JSON 数据并进行更改..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com