首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果属性值包含"x“,则传递筛选器匹配

如果属性值包含"x“,则传递筛选器匹配
EN

Stack Overflow用户
提问于 2022-11-03 18:54:04
回答 2查看 24关注 0票数 0

如果我有一个像这样的对象数组:

代码语言:javascript
复制
const array = [
{name: "Jim", attributes: "strong, handsome, tall", age: 28},
{name: "Alice", attributes: "blonde, thin, tall", age: 26},
{name: "Bob", attributes: "lazy, small, thin", age: 32}
]

是否有一种方法可以使用_.filter(array)创建一个带有对象的新数组,其中属性包含一个值。类似于_.filter(数组,attributes.contains("tall"))将返回所需的结果:

代码语言:javascript
复制
[
{name: "Jim", attributes: "strong, handsome, tall", age: 28},
{name: "Alice", attributes: "blonde, thin, tall", age: 26}
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-03 19:00:34

你可以做这个香草JS。

尝试滤波法,但请注意它是一个浅拷贝-所以如果您更新原始数组,您的过滤器也会有所不同。

代码语言:javascript
复制
array.filter(el => el.attributes.includes('tall'))

这是可能的,因为字符串类型具有方法

更新为使用包含而不是包含。两样都有用。

票数 0
EN

Stack Overflow用户

发布于 2022-11-03 19:01:41

这可以通过内置的filter和检查person的属性是否包括"tall"来完成。

代码语言:javascript
复制
const array = [
{name: "Jim", attributes: "strong, handsome, tall", age: 28},
{name: "Alice", attributes: "blonde, thin, tall", age: 26},
{name: "Bob", attributes: "lazy, small, thin", age: 32}
];

const tallPeople = array.filter(
  (person) => person.attributes.includes("tall")
);

console.log(tallPeople);

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

https://stackoverflow.com/questions/74308229

复制
相关文章

相似问题

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