Javascript:如何从数组中的对象获取对象

Javascript:如何从数组中的对象获取对象,javascript,Javascript,样本数据: { "data": [ { "name": { "full": "JOHN", "rank": "SENIOR" }, "mobile": "12345" }, { "name": { "full": "HENRY", "rank": "SENIOR" }, "mobile": "67890" }, {

样本数据:

{
  "data": [
    {
      "name": {
        "full": "JOHN",
        "rank": "SENIOR"
      },
      "mobile": "12345"
    },
    {
      "name": {
        "full": "HENRY",
        "rank": "SENIOR"
      },
      "mobile": "67890"
    },
    {
      "name": {
        "full": "SAM",
        "rank": "JUNIOR"
      },
      "mobile": "54321"
    }
  ]
}
我试图从上面的数据样本中获取高级成员的总数,我可以从父“name”对象中获取data.namedata.mobile,但无法获取“rank”数据。有谁能指导我获取排名数据吗。下面是我的javascript:

function countRank(rank) {
    var i;
    for (i in rank.data) {
        if (rank.data[i] == "SENIOR") {
            i++;
        }
        document.getElementById('senior').innerHTML = 'Total senior members: ' + i;
    }
}
<div id="senior"></div>
函数countRank(秩){
var i;
对于(排名数据中的i){
if(排名数据[i]=“高级”){
i++;
}
document.getElementById('senior').innerHTML='Total senior members:'+i;
}
}
试试这个

函数countRank(秩){
var k=0;
对于(变量i=0;i
假设整个对象被称为
obj

var i=0;
for (i=0; i < obj.data.length; i++) {
    console.log(obj.data[i].name.rank);
}
var i=0;
对于(i=0;i
函数countRank(秩){
var计数=0;
var arr=秩数据;

对于(var i=0;i你可以做这样的事情

var rank = {
    "data": [{
        "name": {
            "full": "JOHN",
            "rank": "SENIOR"
        },
        "mobile": "12345"
    }, {
        "name": {
            "full": "HENRY",
            "rank": "SENIOR"
        },
        "mobile": "67890"
    }, {
        "name": {
            "full": "SAM",
            "rank": "JUNIOR"
        },
        "mobile": "54321"
    }]
};

function countRank(rank) {
    var i = 0,
        arr = rank.data;
    for (var j = 0; j < arr.length; j++) {
        for (var prop in arr[j]) {
            if (arr[j][prop].rank == "SENIOR") {
                i++;
            }
            document.getElementById('senior').innerHTML = 'Total senior members: ' + i;
        }
    }
}

countRank(rank);
var秩={
“数据”:[{
“姓名”:{
“满”:“约翰”,
“级别”:“高级”
},
“移动”:“12345”
}, {
“姓名”:{
“满”:“亨利”,
“级别”:“高级”
},
“手机”:“67890”
}, {
“姓名”:{
“完整”:“山姆”,
“等级”:“初级”
},
“移动”:“54321”
}]
};
函数countRank(秩){
var i=0,
arr=秩数据;
对于(var j=0;j
使用jQuery,您可以轻松地从上述数据中找到排名。 在jsFiddle上签出示例


您同时对两个不同的事物使用了
i
。@Musa是正确的。我认为您应该为第一个变量设置名称«key»,并为count使用另一个变量。-1.如果我们在for in中使用它,我们就不可能对它进行递增。当然,在数组中首先使用它是不好的做法。
var i=0;
for (i=0; i < obj.data.length; i++) {
    console.log(obj.data[i].name.rank);
}
function countRank(rank) {
    var count = 0;
    var arr = rank.data;
    for (var i=0; i<arr.length; i++) {
        var name = arr[i].name;
        if (name.rank == "SENIOR") {
            count++;
        }
    }
    alert(count);
}
var rank = {
    "data": [{
        "name": {
            "full": "JOHN",
            "rank": "SENIOR"
        },
        "mobile": "12345"
    }, {
        "name": {
            "full": "HENRY",
            "rank": "SENIOR"
        },
        "mobile": "67890"
    }, {
        "name": {
            "full": "SAM",
            "rank": "JUNIOR"
        },
        "mobile": "54321"
    }]
};

function countRank(rank) {
    var i = 0,
        arr = rank.data;
    for (var j = 0; j < arr.length; j++) {
        for (var prop in arr[j]) {
            if (arr[j][prop].rank == "SENIOR") {
                i++;
            }
            document.getElementById('senior').innerHTML = 'Total senior members: ' + i;
        }
    }
}

countRank(rank);
$.each(jsonData.data, function (index, value) {
                    alert(value.name['rank']);
                });