Angular JS基于两个参数来拼接Response中的项目

时间:2016-12-23 15:08:31

标签: javascript angularjs

这是我的JSON回复。我能够使用类似的东西从控制器端拼接出元素。现在,我的员工可以拥有相同的员工ID但不同的类型。所以我想通过比较Id和amp;来从响应中删除itesm。类型。例如,我需要删除带有Id ABC的雇员并仅输入D.我怎样才能把它们拼出来怎样才能继续

var searchresponse = [{
    "items": [{
        "employeeId": "ABC",
        "type": "D",
        "alive": "Yes"

    }, {
        "employeeId": "ABC",
        "type": "P",
        "alive": "Yes"

    }, {
        "employeeId": "NPK",
        "type": "D",
        "alive": "Yes"

    }, {
        "employeeId": "PKN",
        "type": "A",
        "alive": "Yes"
    }],
    "more": false
}];

var data1 = ["ABC"];
var data2 = ["D"] //- how to splice ABC also comparing the D 
var items = searchresponse[0].items;
for (var i = items.length - 1; i >= 0; i--) {
    if (data1.indexOf(items[i].employeeId) != -1) {
        items.splice(i, 1);
    }
}

2 个答案:

答案 0 :(得分:1)

如果我理解你的权利..可以扩展if子句吗?

if (data1.indexOf(items[i].employeeId) != -1 && data2.indexOf(items[i].type) != -1)

答案 1 :(得分:1)

使用array.prototype.filter方法

 var filterd =searchresponse[0].items.filter(function (item) {
 return item.employeeId == "ABC"&& item.type== "D"
})

你也可以在你的情况下使用underscore.js简单的javascript库

var filterd=_.where(searchresponse[0].items, {employeeId: "ABC", type: "D"});

会给你

 [{
    "employeeId": "ABC",
    "type": "D",
    "alive": "Yes"

}]

Check this working fiddle