在复杂对象中搜索对象,如下所示

时间:2016-02-09 10:45:02

标签: javascript arrays object

我有一个JSON数据,如下所示

{
    "id": "0001",
    "fieldName": "sample1",
    "fieldValue" "0001",
    "subList": [
        {
            "id": 1001,
            "fieldName": "Sample Child 1",
            "fieldValue": "1001",
            "subList": []
        },{
            "id": 1002,
            "fieldName": "Sample Child 2",
            "fieldValue": "1002",
            "subList": []
        }
    ]
}

现在我想搜索数据中的对象

1 个答案:

答案 0 :(得分:0)

假设搜索对象只包含一个属性:

function search(s, o) {
    var k = Object.keys(s)[0], r;
    if (o[k] === s[k]) {
        return o;
    }
    o.subList.some(function (a) {
        r = search(s, a);
        return r;
    });
    return r;
}

var obj = { "id": "0001", "fieldName": "sample1", "fieldValue": "0001", "subList": [{ "id": 1001, "fieldName": "Sample Child 1", "fieldValue": "1001", "subList": [] }, { "id": 1002, "fieldName": "Sample Child 2", "fieldValue": "1002", "subList": [] }] };

document.write('<pre>' + JSON.stringify(search({ id: '0001' }, obj), 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(search({ id: 1001 }, obj), 0, 4) + '</pre>');