假设我有一个看起来像
的json对象"bounds":{
"coordinatetop":{
"x":143,
"y":544
},
"coordinatebottom":{
"x":140,
"y":510
}
}
我正在尝试使用此代码解析当前的JSON,其中数据是json数据,而target只是标记ID。
$.each(data, function(index, value) {
if (typeof(value) == 'object') {
processBounds(value, target);
} else {
console.log(value);
}
});
当我遍历这个时,函数调用取值坐标和目标,然后是x和y的值143和544.但是,这个函数的循环不够远,无法获得coordinatebottom的值。 / p>
为实现这一目标,还有哪些其他实施方式?感谢
答案 0 :(得分:0)
实际上你并不是递归地调用函数,你只是绑定一个调用processBounds()
函数的回调函数。
您需要单独声明processBounds
函数,然后在.each
回调中绑定它:
var processBounds = function(index, value) {
if (typeof(value) == 'object') {
processBounds(value, target);
} else {
console.log(value);
}
}
$.each(data, processBounds);
修改强>
$.each(data.bounds, processBounds);