迭代嵌套的对象数组

时间:2016-11-30 08:26:29

标签: javascript arrays loops

我正在尝试迭代这个包含任务对象数组的对象。我如何能够迭代每个键值对,例如返回状态为“已完成”的所有任务。

{
    "quests": [
        {
            "title": "A Rum Deal",
            "status": "COMPLETED",
            "difficulty": 2,
            "members": true,
            "questPoints": 2,
            "userEligible": true
        }
    ],
    "loggedIn": false
}

3 个答案:

答案 0 :(得分:2)

对于迭代,您可以使用Array#forEach

object.quests.forEach(function (a) {
    if (a.status === "COMPLETED") {
        // do something with the data
    }
});

要返回已完成任务的选择,您可以使用Array#filter

var completed = object.quests.filter(function (a) {
    return a.status === "COMPLETED";
});

答案 1 :(得分:1)

使用{{3}}过滤掉已经完成的元素'状态 - 请参阅下面的演示:



.as-console-wrapper{top:0;max-height:100%!important;}

{{1}}




答案 2 :(得分:1)

那是JavaScript filters的用途。

myObj.quests.filter(item => item.status === 'COMPLETED');