作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 JavaScript 中的 filter
中应用 filter
,同时在数组中查找数组中的值?
比如说,我想要获取团队包括 Jane Smith
的所有建筑
项目。
我意识到我在这里发明了一些疯狂的 JavaScript,我只是想向你展示我想要的东西。
const result = myArray.filter(x => x.type === "construction" && x.team.filter(y => y.name.includes("Jane Smith")));
这是我要过滤的数组:
[
{
"type": "construction",
"name": "Project A",
"team": [
{
"name": "John Doe",
"position": "Engineer"
},
{
"name": "Jane Smith",
"position": "Architect"
}
]
},
{
"type": "construction",
"name": "Project B",
"team": [
{
"name": "Walt Disney",
"position": "Creative Director"
},
{
"name": "Albert Einstein",
"position": "Scientist"
}
]
},
{
"type": "remodelling",
"name": "Project C",
"team": [
{
"name": "John Travolta",
"position": "Manager"
}
]
}
]
最佳答案
您可以使用Array#some
用于检查团队。
此提案使用 destructuring assignment对于对象。
var array = [{ type: "construction", name: "Project A", team: [{ name: "John Doe", position: "Engineer" }, { name: "Jane Smith", position: "Architect" }] }, { type: "construction", name: "Project B", team: [{ name: "Walt Disney", position: "Creative Director" }, { name: "Albert Einstein", position: "Scientist" }] }, { type: "remodelling", name: "Project C", team: [{ name: "John Travolta", position: "Manager" }] }],
result = array.filter(({ type, team }) =>
type === "construction" && team.some(({ name }) => name === "Jane Smith"));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 在 JavaScript 中的过滤器内应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51430908/
我是一名优秀的程序员,十分优秀!