使用 javascript 或 lodash 过滤具有多个元素及其值的对象数组

挑衅的

我有一个对象数组,如下所示。

const data =
    [
     {id: 1, name: 'Peter',age: 21, gender: 'Male'},
     {id: 2, name: 'Steve',age: 24, gender: 'Male'},
     {id: 3, name: 'John',age: 21, gender: 'Male'},
     {id: 4, name: 'Julie',age: 26, gender: 'Female'}
    ]

我想使用 javascript 或 lodash 动态过滤具有多个元素及其值的上述数组。如果我向对象添加更多元素并尝试使用相同的元素进行过滤,则代码应该可以正常工作。我期望从如下对象中传递需要过滤的元素和相应的值。

const filter = {'name':'e','gender':'mal'}

预期输出:

[{id: 1, name: 'Peter',age: 21, gender: 'Male'},
         {id: 2, name: 'Steve',age: 24, gender: 'Male'},
         {id: 4, name: 'Julie',age: 26, gender: 'Female'}]
尤孙

使用 Object.entries 将键和值与过滤器对象分开,通过使用键和小写该值来查找值,因为您不区分大写和小写字母

const data =
    [
     {id: 1, name: 'Peter',age: 21, gender: 'Male'},
     {id: 2, name: 'Steve',age: 24, gender: 'Male'},
     {id: 3, name: 'John',age: 21, gender: 'Male'},
     {id: 4, name: 'Julie',age: 26, gender: 'Female'}
    ]

const filter = {
  'name': 'e',
  'gender': 'mal'
}


const result = data.filter(x => Object.entries(filter)
  .every(([key, val]) => x[key].toString().toLowerCase().includes(val)))
  
  
console.log(result)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript或lodash:使用嵌套数组的值过滤对象数组

使用Lodash / Javascript过滤嵌套数组

使用javascript / lodash遍历嵌套对象的数组

Javascript使用lodash isEqual比较具有功能的对象

如何使用javascript或lodash返回指示对象数组的元素为空的布尔值

使用Lodash遍历JavaScript对象中的属性

如何使用lodash / underscore.js分割具有特定条件的对象的javascript数组

使用Lodash将JavaScript数组拆分为多个块

在Javascript / Lodash中过滤对象数组中的多个字段

使用lodash或vanilla javascript计算数组内部的对象属性

使用lodash映射/变换对象的javascript数组

Javascript lodash 基于值过滤数组中的对象

根据属性值使用lodash过滤对象数组

如何使用lodash过滤对象数组的数据

JavaScript:使用lodash在相同的嵌套键之间进行过滤

使用 javascript 或 Lodash 将数组值添加到一个 json 对象中

使用javascript使用数组过滤具有键和值对的对象

如何使用lodash或javascript匹配两个对象?

如何使用JavaScript深度映射对象键(lodash)?

lodash javascript对象仅使用相同的键分配

更改键并使用lodash将javascript对象分组

如何使用 lodash 或 javascript 按数组分组

使用lodash通过可选属性订购JavaScript数组

使用lodash javascript完全连接二维数组

如何使用Lodash或纯JavaScript使用动态过滤器过滤嵌套对象?

如何使用lodash计算对象数组中的多个属性值?

使用 lodash 过滤

使用 lodash 合并数组

lodash:过滤具有非空数组值的对象