Javascript 如何循环JSON数组?

Javascript 如何循环JSON数组?,javascript,json,jquery,Javascript,Json,Jquery,我有一些JSON代码,其中包含多个对象: [ { "MNGR_NAME": "Mark", "MGR_ID": "M44", "EMP_ID": "1849" }, { "MNGR_NAME": "Steve", "PROJ_ID": "88421", "PROJ_NAME": "ABC", "PROJ_ALLOC_NO": "49" } ] 我的JS

我有一些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++) 
  {      

  }    
}
函数服务成功(结果)
{       

对于(var x=0;x,您需要在迭代时访问
结果
对象

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;
   }
}

这将在
对象中查找
MNGR\u名称
键的出现次数
数组

var numMngrName = 0;

$.each(json, function () {
    // 'this' is the Object you are iterating over
    if (this.MNGR_NAME !== undefined) {
        numMngrName++;
    }
});
您可以使用jQuery的:


返回
false
将破坏each,因此当遇到一个管理器时,迭代将停止。

循环中的
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);
}
函数服务成功(结果)
{
风险值管理器=0

对于(var x=0;x,如果还想获取包含该属性的元素,可以使用$.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++;
    }
}
var计数=0;
var i;
对于(i=0;i

工作示例:

请注意,您的对象是一个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);
var数组=[{
“MNGR_名称”:“标记”,
“经理ID”:“M44”,
“EMP_ID”:“1849”
},
{
“MNGR_名称”:“史蒂夫”,
“项目ID”:“88421”,
“项目名称”:“ABC”,
“项目分配号”:“49”
}];
var numberOfMngrName=0;
对于(var i=0;i使用ES6

myobj1.map(items =>
{
if(items.MNGR_NAME) {
return items.MNGR_NAME;
}else {
//do want you want.
}    
})

谢谢。

你问题中的“否”是指“数字”吗?如果你想计数,当然不应该返回
false
。你的回答帮助我的JSON数组摆脱了坏数据。但是为什么数据会被发送出去?你为什么要检查额外的If?谢谢你使用纯JavaScript。
myobj1.map(items =>
{
if(items.MNGR_NAME) {
return items.MNGR_NAME;
}else {
//do want you want.
}    
})