使用下划线从集合中删除元素

时间:2014-04-07 14:37:20

标签: javascript underscore.js

我希望从像这样的集合中删除下划线

[{cod:"1", Desc: "Description1"}, {cod:"2", Desc: "Description2"}]

除某个鳕鱼以外的所有项目,例如1。

我该怎么办?

我知道我可以搜索for语句,但可以避免吗?

3 个答案:

答案 0 :(得分:2)

你甚至不需要Underscore。

var filtered = arr.filter(function (item) {
    return item.cod !== "1";
});

答案 1 :(得分:2)

var test = [{cod:"1", Desc: "Description1"}, 
            {cod:"2", Desc: "Description2"},];

var t = _.without(test, _.findWhere(test, {cod: "1"}));

alert(JSON.stringify(t));

<强> JSFiddle

答案 2 :(得分:1)

您可以使用_.filter功能,就像这样

console.log(_.filter(array, function(currentItem) {
    return currentItem.cod !== "1";
}));
# [ { cod: '2', Desc: 'Description2' } ]

或者您可以使用_.reject功能,例如

console.log(_.reject(array, function(currentItem) {
    return currentItem.cod === "1";
}));
# [ { cod: '2', Desc: 'Description2' } ]

或者您可以使用原生Array.prototype.filter,就像这样

console.log(array.filter(function(currentItem) {
    return currentItem.cod !== "1";
}));
# [ { cod: '2', Desc: 'Description2' } ]