首先,这是我的
contacts
数组:
[
{firstname: "John", lastname: "Wick"},
{firstname: "John", lastname: "Cena"},
{firstname: "Cody", lastname: "Rhodes"},
]
我想创建一个搜索功能,它将显示用户输入的结果。用户给出的关键字可以在
firstname
、lastname
或两者上找到。
这是我的代码:
const result = contacts.filter((x) => {
const name = `${x.firstname} ${x.lastname}`;
name.toLowerCase().includes(search.toLowerCase());
});
但是这会给出一个空数组。 如果我只是使用类似的东西:
x.firstname.toLowerCase().includes(search.toLowerCase());
...它会起作用的。多个字符串不会。有什么想法吗?
正如问题评论中提到的,过滤时需要返回一些东西
请参阅下面的示例代码:
var search = "jo";
var contacts = [{
firstname: "John",
lastname: "Wick"
},
{
firstname: "John",
lastname: "Cena"
},
{
firstname: "Cody",
lastname: "Rhodes"
},
]
const result = contacts.filter((x) => {
const name = `${x.firstname} ${x.lastname}`;
return name.toLowerCase().includes(search.toLowerCase());
});
console.log(result);