检查 lodash 中的对象数组的属性值

web*_*evy 1 javascript lodash

鉴于以下

var content = [{
        "set_archived": false,
        "something": [{
            "id": "aa7bb3db-19a2-4ef6-5944-892edaaf53c3",
            "modified": "2016-12-01T18:23:29.743333Z",
            "created": "2016-12-01T18:23:29.743333Z",
            "archived": false
        }]
    },
    {
        "set_archived": true,
        "something": [{
            "id": "aa7bb3db-19a2-4ef6-5944-892edaaf53c3",
            "modified": "2017-01-30T19:42:29.743333Z",
            "created": "2017-01-30T19:42:29.743333Z",
            "archived": false
        }]
    }
];
Run Code Online (Sandbox Code Playgroud)

使用 Lodash,我如何确定对象数组中的一个set_archivedsomething.archived是否等于真?

所以在这种情况下,因为第二个对象set_is_archived是真的,那么预期的响应应该是真的。如果任一对象中的所有项目均为假,则响应应为假。

cyr*_*r_x 5

只需使用:

_.filter(content, o => o["set_archived"] || o.something[0].archived).length > 0;
Run Code Online (Sandbox Code Playgroud)

或者

_.some(content, o => o["set_archived"] || o.something[0].archived);
Run Code Online (Sandbox Code Playgroud)

平原Js:

content.some(o => o["set_archived"] || o.something[0].archived)
Run Code Online (Sandbox Code Playgroud)

或者

 content.filter(o => o["set_archived"] || o.something[0].archived).length > 0;
Run Code Online (Sandbox Code Playgroud)