JSONのデータのようなマップがあります
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);
しかし、マップデータは変更されていません..参照を使用してループし、値を変更する方法..?