假设我有这段代码
var arr = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}];
我想从数组中删除 id = 3 的项目。有没有办法不用拼接就可以做到这一点?可以使用下划线或类似的东西吗?
谢谢!
最佳答案
仅使用纯 JavaScript,这已经得到解答:remove objects from array by object property .
使用 underscore.js,你可以结合 .findWhere
与 .without
:
var arr = [{
id: 1,
name: 'a'
}, {
id: 2,
name: 'b'
}, {
id: 3,
name: 'c'
}];
//substract third
arr = _.without(arr, _.findWhere(arr, {
id: 3
}));
console.log(arr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
尽管如此,由于无论如何在这种情况下您要创建一个新数组,您可以简单地使用 _.filter
或 native Array.prototype.filter
函数(就像在另一个问题中显示)。然后你将只迭代数组一次而不是像这里那样可能两次。
如果你想就地修改数组,你必须使用.splice
。这也在另一个问题中显示,并且 undescore 似乎没有为此提供任何有用的功能。
关于javascript - 使用 UnderscoreJS 从数组中删除一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16994212/