[英]Looping through nested json object
我有一个设计糟糕的JSON对象,遗憾的是我此时无法更改其中包含许多对象。 以下是我正在使用的示例:
var land = [
{"name":"city","value":"Los Angeles"},
{"name":"state","value":"California"},
{"name":"zip","value":"45434"},
{"name":"country","value":"USA"}
];
这是我如何循环我:
$(document).ready(function(){
$.each(land, function(key,value) {
$.each(value, function(key,value) {
console.log(key + ' : ' + value);
})
});
})
结果如下:
name : city
value : Los Angeles
name : state
value : California
name : zip
value : 45434
name : country
value : USA
我的目标是得到这样的结果:
city : Los Angeles
state : California
zip : 45434
country: USA
我在这里错过了什么? 我如何实现预期的结果? 先感谢您 :)
你可以使用ecmascript 5的forEach方法来做到这一点:
land.forEach(function(entry){
console.log(entry.name + " : " + entry.value)
} );
或使用jquery来支持旧版Web浏览器:
$.each(land,function(index,entry) {
console.log(entry.name + " : " + entry.value)
});
不要遍历子对象,只显示其属性。
var land = [{ "name": "city", "value": "Los Angeles" }, { "name": "state", "value": "California" }, { "name": "zip", "value": "45434" }, { "name": "country", "value": "USA" }]; $.each(land, function(index, object) { console.log(object.name, ": ", object.value); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
如果所有对象( name
和value
)中的属性名称相同,那么就这样做。
$.each(land, function(key,value) {
console.log(value.name + ' : ' + value.value);
});
您只需要一个forEach()
循环来获得此结果。
var land = [{ "name": "city", "value": "Los Angeles" }, { "name": "state", "value": "California" }, { "name": "zip", "value": "45434" }, { "name": "country", "value": "USA" }]; land.forEach(function(e) { console.log(e.name + ' : ' + e.value); })
不要遍历对象。 您只需要一个循环来实现这一目标。
$(document).ready(function(){ $.each(land, function(key,value) { console.log(value.name + ' : ' + value.value); }); })
var converter = function(object){
return {city: object[0].value,
state: object[1].value,
zip: object[2].value,
country: object[3].value
}
}
converter(land)
对象{城市:“洛杉矶”,州:“加利福尼亚”,邮编:“45434”,国家:“美国”}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.