javascript - 将项目过滤到数组内的数组中?
问题描述
const personData = {
personList: [
{
personCodes: [
{
code: "001",
desc: "Indian"
}
]
},
{
personCodes: [
{
code: "002",
desc: "Spanish"
}
]
},
{
personCodes: [
{
code: "001",
desc: "Spanish"
},
{
code: "002",
desc: "Spanish1"
},
{
code: "003",
desc: "Spanish2"
}
]
},
{
personCodes: [
{
code: "001",
desc: "Russian"
}
]
},
{
personCodes: [
{
code: "001",
desc: "Spanish"
},
{
code: "002",
desc: "Indian"
},
{
code: "004",
desc: "Japanina"
}
]
},
{
personCodes: [
{
code: "001",
desc: "Spanish"
},
{
code: "004",
desc: "Indian"
},
{
code: "003",
desc: "Japanina"
}
]
},
]
};
const personID = ["001","003"];
const result = personData.personList.filter(role => role.personCodes && role.personCodes.find(group => personID.includes(group.code)));
console.log(result);
以下代码用人员列表表示人员数据。每个人列表代表代码。执行代码后,我将获得 5 种不同类型的数组,其中包含代码到 personID 数组中。我希望从 person Data 3rd 和 6th 对象中得到预期的结果。有人可以查看它并修改代码,我已经附上了所需的代码。谢谢
解决方案
你可以在上面使用every()
,personID
然后find()
在里面使用。
const personData = { personList: [ { personCodes: [ { code: "001", desc: "Indian" } ] }, { personCodes: [ { code: "002", desc: "Spanish" } ] }, { personCodes: [ { code: "001", desc: "Spanish" }, { code: "002", desc: "Spanish1" }, { code: "003", desc: "Spanish2" } ] }, { personCodes: [ { code: "001", desc: "Russian" } ] }, { personCodes: [ { code: "001", desc: "Spanish" }, { code: "002", desc: "Indian" }, { code: "004", desc: "Japanina" } ] }, { personCodes: [ { code: "001", desc: "Spanish" }, { code: "004", desc: "Indian" }, { code: "003", desc: "Japanina" } ] }, ] };
const personID = ["001","003"];
const result = personData.personList.filter(role =>
role.personCodes && personID.every(x =>
role.personCodes.find(a => x.includes(a.code))
));
console.log(result);
推荐阅读
- apache-spark - 使用 Spark2 的 Hbase 分布式扫描问题
- mqtt - 订阅发布到 mosquitto 代理的主题数据的方法
- android - 当应用程序在 Android Oreo 中被杀死或从后台删除时如何从通知中获取数据
- matlab - Matlab水平打印图形
- activiti - 一个关于activiti的查询
- html - 在新选项卡 C# MVC 中从 Blob 存储 URL 打开 PDF
- google-analytics - Google Analytics - 显示“新用户”但未显示“用户”
- firebase - Cloud Firestore 函数只返回一个文档?
- console - 邮递员:从输入文件中检索到的数据无法在控制台中记录
- apache - Solr 无法获取 max(id)