首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >洛达什不在酒店吗?

洛达什不在酒店吗?
EN

Stack Overflow用户
提问于 2018-04-04 00:26:58
回答 4查看 992关注 0票数 2

我尝试使用lodash的函数without根据对象的属性从数组中排除对象,如下所示:

我的数组:

代码语言:javascript
复制
let arr = [
  {code: '001', data: 'foo data 1'}, 
  {code: '002', data: 'foo data 2'},
  {code: '003', data: 'foo data 3'},
  {code: '004', data: 'foo data 4'}]

函数用法:

代码语言:javascript
复制
_.without(arr, {code: '002'})

我期望该函数从数组中排除代码为002的项,但总是给我全部4个项。我做错了什么吗?谢谢你的建议。

EN

回答 4

Stack Overflow用户

发布于 2018-04-04 00:39:00

您可以使用_.reject:

代码语言:javascript
复制
let arr = [
  {code: '001', data: 'foo data 1'}, 
  {code: '002', data: 'foo data 2'},
  {code: '003', data: 'foo data 3'},
  {code: '004', data: 'foo data 4'}]
  
  arr = _.reject(arr, {code: '002'});
  
  console.log(JSON.stringify(arr))
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>

票数 2
EN

Stack Overflow用户

发布于 2018-04-04 00:39:59

您可以使用

代码语言:javascript
复制
let newArr = _.filter(arr, function(obj) {
    return obj.code !== "002";
});

shorter使用箭头函数:

代码语言:javascript
复制
let newArr = _.filter(arr, obj => obj.code !== "002");

注意:如果您希望更改原始数组,而不是创建新数组,则使用并将测试从obj.code !== "002"更改为obj.code === "002"

票数 0
EN

Stack Overflow用户

发布于 2018-04-04 00:52:46

Lodash有一个像jQuerys一样工作的"map“函数:

代码语言:javascript
复制
let arr = [
  {code: '001', data: 'foo data 1'}, 
  {code: '002', data: 'foo data 2'},
  {code: '003', data: 'foo data 3'},
  {code: '004', data: 'foo data 4'}];

var data1 = _.map(arr, function(o) {
    if (o.code == "002") return o;
});

// Remove undefines from the array
data1 = _.without(data1, undefined)

或者您可以使用lodash _.filter方法:

_.filter(collection, [predicate=_.identity])

迭代集合的元素,返回所有元素的数组,谓词返回truthy for。使用三个参数调用谓词:(value,index|key,collection)。

将谓词作为自定义函数

_.filter(arr, function(o) {

return o.code == '002';

});

将谓词作为过滤对象的一部分( _.matches iteratee简写)

_.filter(arr, {code: '002'});

以谓词为键,值数组( _.matchesProperty迭代器的简写形式。)

_.filter(arr, ['code', '002']);

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

https://stackoverflow.com/questions/49634901

复制
相关文章

相似问题

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