[英]How to loop through JSON array?
我有一些JSON代碼,其中包含多個對象:
[
{
"MNGR_NAME": "Mark",
"MGR_ID": "M44",
"EMP_ID": "1849"
},
{
"MNGR_NAME": "Steve",
"PROJ_ID": "88421",
"PROJ_NAME": "ABC",
"PROJ_ALLOC_NO": "49"
}
]
我的JSON循環片段是:
function ServiceSucceeded(result)
{
for(var x=0; x<result.length; x++)
{
}
}
你能否告訴我如何檢查陣列中是否沒有“MNGR_NAME”。 (在我的案例中,它出現了兩次。)
您需要在迭代時訪問result
對象。
for (var key in result)
{
if (result.hasOwnProperty(key))
{
// here you have access to
var MNGR_NAME = result[key].MNGR_NAME;
var MGR_ID = result[key].MGR_ID;
}
}
你可以使用jQuery的$ .each :
var exists = false;
$.each(arr, function(index, obj){
if(typeof(obj.MNGR_NAME) !== 'undefined'){
exists = true;
return false;
}
});
alert('Does a manager exists? ' + exists);
返回false
會破壞每個,因此當遇到一個管理器時,迭代將停止。
請注意,您的對象是一個JavaScript對象數組。 你能用這樣的東西嗎?
var array = [{
"MNGR_NAME": "Mark",
"MGR_ID": "M44",
"EMP_ID": "1849"
},
{
"MNGR_NAME": "Steve",
"PROJ_ID": "88421",
"PROJ_NAME": "ABC",
"PROJ_ALLOC_NO": "49"
}];
var numberOfMngrName = 0;
for(var i=0;i<array.length;i++){
if(array[i].MNGR_NAME != null){
numberOfMngrName++;
}
}
console.log(numberOfMngrName);
使用ES6 ......
myobj1.map(items =>
{
if(items.MNGR_NAME) {
return items.MNGR_NAME;
}else {
//do want you want.
}
})
謝謝。
這將在Object
Array
找到MNGR_NAME
鍵的出現次數:
var numMngrName = 0;
$.each(json, function () {
// 'this' is the Object you are iterating over
if (this.MNGR_NAME !== undefined) {
numMngrName++;
}
});
在循環result[x]
是對象,所以如果你想計算一個可能存在或不存在的成員;
function ServiceSucceeded(result)
{
var managers = 0
for(var x=0; x<result.length; x++)
{
if (typeof result[x].MNGR_NAME !== "undefined")
managers++;
}
alert(managers);
}
如果您還想獲取包含該屬性的元素,則可以使用$ .each或$ .grep。
filtered = $.grep(result, function(value) {
return (value["MNGR_NAME"] !== undefined)
});
count = filtered.length
您可以迭代集合並檢查每個對象是否包含屬性:
var count = 0;
var i;
for(i = 0; i < jsonObj.length; i += 1) {
if(jsonObj[i]["MNGR_NAME"]) {
count++;
}
}
工作示例: http : //jsfiddle.net/j3fbQ/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.