首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用UnderscoreJS从数组中删除项?

如何使用UnderscoreJS从数组中删除项?
EN

Stack Overflow用户
提问于 2018-03-27 01:39:51
回答 2查看 0关注 0票数 0

假设我代码如下:

var arr = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}];

我希望从数组中删除id=3的项。有什么办法可以做到这一点而不剪接呢?可能是用下划线还是类似的东西?

EN

回答 2

Stack Overflow用户

发布于 2018-03-27 10:21:41

使用unscore.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或者是本地人Array.prototype.filter函数(如另一个问题中所示)。然后,您将只对数组进行一次迭代,而不是像这里那样重复一次。

票数 0
EN

Stack Overflow用户

发布于 2018-03-27 10:57:30

您可以使用下划线。.filter

    var arr = [{
      id: 1,
      name: 'a'
    }, {
      id: 2,
      name: 'b'
    }, {
      id: 3,
      name: 'c'
    }];

    var filtered = _(arr).filter(function(item) {
         return item.id !== 3
    });

也可以写成:

var filtered = arr.filter(function(item) {
    return item.id !== 3
});

var filtered = _.filter(arr, function(item) {
    return item.id !== 3
});

检查Fiddle

您也可以使用.reject

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档