在数组过滤器中加入多个字符串[已关闭]

问题描述 投票:0回答:1

首先,这是我的

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());

...它会起作用的。多个字符串不会。有什么想法吗?

javascript arrays string filter
1个回答
0
投票

正如问题评论中提到的,过滤时需要返回一些东西

请参阅下面的示例代码:

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);

© www.soinside.com 2019 - 2024. All rights reserved.