我正试图动态比较searchTag
字段与数组student.tags
,对于每个学生,他们自己都生活在另一个名为students
的数组
下面是
students = [
0: {
name: "Cheddar",
...,
tags: ["gravy","steak"]
},
...,
40: {
name: "Stacy",
...,
tags: ["gravy","grade"]
},
]
我失败了与过滤器内的过滤器,并努力返回谁在他们的标签数组标签的学生
I can do
students.filter((student) => {
if ((student.tags.includes(searchTag))) {
return student;
} return '';
})
但这只返回精确匹配,我需要动态地找到学生,即输入'gra'返回学生0和40,但'grad'只返回40
你可以使用filter和some的组合来过滤数组
const students = [
{
name: "Cheddar",
tags: ["gravy", "steak"],
},
{
name: "Stacy",
tags: ["gravy", "grade"],
},
];
let search = "gra";
const result = students.filter(({ tags }) => tags.some((tag) => tag.toLowerCase().includes(search.toLowerCase())));
console.log(result);