传递json并取结果取决于2行 - javascript

时间:2015-05-30 13:39:03

标签: javascript jquery json

我在ajax服务器响应

的javascript中有这个JSON

我需要传递它并获得新的json或arrat或其他能够返回状态为“0”的数字的其他类型

例如:

id:1 num:1 type:A state:0
id:2 num:1 type:B state:0 

这是好数字!!我需要这个数字因为状态0是A型和B型

但这不好

id:1 num:1 type:A state:0
id:2 num:1 type:B state:1 

所以对于这个json我的数字将是:1,3

[
    {
        "id": 1,
        "num":1,
        "type":"A",
        "state": 0
    },
    {
        "id": 2,
        "num":1,
        "type":"B",
        "state": 0
    },
    {
        "id": 3,
        "num":2,
        "type":"A",
        "state": 1
    },
    {
        "id": 4,
        "num":2,
        "type":"B",
        "state": 0
    },
    {
        "id": 5,
        "num":3,
        "type":"A",
        "state": 0
    },
    {
        "id": 6,
        "num":3,
        "type":"B",
        "state": 0
    }
]

1 个答案:

答案 0 :(得分:0)

var aa = [
        { "id": 1, "num": 1, "type": "A", "state": 0 },
        { "id": 2, "num": 1, "type": "B", "state": 0 },
        { "id": 3, "num": 2, "type": "A", "state": 1 },
        { "id": 4, "num": 2, "type": "B", "state": 0 },
        { "id": 5, "num": 3, "type": "A", "state": 0 },
        { "id": 6, "num": 3, "type": "B", "state": 0 }
    ],
    num = {},
    result = [],
    i;

aa.forEach(function (a, i) {
    if (a.state === 0) {
        num[a.num] = num[a.num] || [];
        num[a.num].push(i);
    }
});
for (i in num) {
    if (num[i].length >= 2) {
        result.push(i);
    }
}