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

时间:2013-04-12 03:53:06

标签: javascript

示例数据:

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

我正在尝试从上面的数据示例中获取高级成员的总数,我可以获得 data.name data.mobile ,但是我无法从父“name”对象获取“排名”数据。任何人都可以指导我获取排名数据。下面是我的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>

5 个答案:

答案 0 :(得分:1)

试试这个JSFIDDLE

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

答案 1 :(得分:0)

myObject.data[0].name.rank
>>> "SENIOR"

假设整个对象被称为obj

var i=0;
for (i=0; i < obj.data.length; i++) {
    console.log(obj.data[i].name.rank);
}

答案 2 :(得分:0)

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

我查了一遍,效果很好。

答案 3 :(得分:0)

你可以做这样的事情

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

答案 4 :(得分:0)

使用jQuery,您可以轻松地从上面的数据中找到排名。 jsFiddle上的结帐样本

http://jsfiddle.net/uBnfu/

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