javascript - 使用 UnderscoreJS 从数组中删除一个项目

标签 javascript underscore.js

假设我有这段代码

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/

相关文章:

javascript - AngularJS 错误 : Blocked loading resource from url not allowed by $sceDelegate policy

javascript - 如何在 svelte 中实现 Draggable Bottom Sheet Modal?

javascript - 如何返回一个由字符串参数定义的字段的数组

javascript - HTML 中的下划线模板生成神秘的 404 错误

jquery - 包含 Underscore.js 与 jQuery 无冲突

javascript - 多个文件输入显示 css 和 javascript 问题

javascript - 如何检测 css3 过渡何时结束

javascript - 正则表达式只检测第一个表情符号?

javascript - 尝试访问 JSON 项目时未定义

javascript - 在javascript中将数字美化为最接近的数字,末尾加零