嗨!
我已经阅读了所有关于在 JS 中使用地图、过滤器和包含的文章,但我仍然无法弄清楚如何从我收到和通过的检查中获取我需要的“块”。
任务:在对象 A 内部,有具有“块”字段的数组。此字段应与数组 B 进行比较,并将结果值保存或简单返回。
首先我得到唯一值并将它们组合起来,然后我开始在结果列表中搜索并比较它们。
a = [
{
"id":1,
"title":"123",
"url":"123",
"password":"123",
"totp":"none",
"block":"none",
"created_at":"2021-03-28T20:36:21.000Z",
"updated_at":"2021-03-28T20:36:21.000Z"
},
{
"id":2,
"title":"qwe",
"url":"qwe",
"password":"qwe",
"totp":"none",
"block":"none",
"created_at":"2021-03-28T20:36:39.000Z",
"updated_at":"2021-03-28T20:36:39.000Z"
},
{
"id":3,
"title":"asd",
"url":"asd",
"password":"asd",
"totp":"none",
"block":"nne",
"created_at":"2021-03-28T20:36:42.000Z",
"updated_at":"2021-03-28T20:36:42.000Z"
}
];
b = ['none', '5235', '5235']
console.log(
Array.from(a,
({block}) => block
)
.map(
i => i
)
.map(
al => b.filter(
bal => bal === al
)
)
)
但我想看到而不是匹配的词 - 这些词所属的特定对象
答案 0 :(得分:2)
使用a.filter(({block}) => b.includes(block))
const a = [
{"id":1,"title":"123","url":"123","password":"123","totp":"none","block":"none","created_at":"2021-03-28T20:36:21.000Z","updated_at":"2021-03-28T20:36:21.000Z"},
{"id":2,"title":"qwe","url":"qwe","password":"qwe","totp":"none","block":"none","created_at":"2021-03-28T20:36:39.000Z","updated_at":"2021-03-28T20:36:39.000Z"},
{"id":3,"title":"asd","url":"asd","password":"asd","totp":"none","block":"nne","created_at":"2021-03-28T20:36:42.000Z","updated_at":"2021-03-28T20:36:42.000Z"}
];
const b = ['none', '5235', '5235']
const filtered = a.filter(({block}) => b.includes(block));
console.log(filtered);