反应-多个过滤器只能工作一半

时间:2018-10-12 01:16:26

标签: javascript arrays reactjs

我在使用多个过滤器进行反应(过滤数组)时遇到麻烦

这是我的过滤器代码

const filteredRobots = robots.filter(robot => {
  const robotName = `${robot.firstName.toLowerCase()} ${robot.lastName.toLowerCase()}`;

  return (
    robot.firstName.toLowerCase().includes(nameSearchField.toLowerCase()) ||
    robot.lastName.toLowerCase().includes(nameSearchField.toLowerCase()) ||
    robotName.includes(nameSearchField.toLowerCase())
  );

这很完美,并且满足此处的3个条件。但是,我还想满足一个条件,即可以通过标签进行搜索。我试图以此作为延续。甚至自己尝试过,但无济于事

robots.tags.includes(tagSearchField)我也尝试了另一种方法,但是没有成功。

我将Github包含在此处,希望对您有所帮助。有问题的代码在app.js中。

无论如何,要澄清。我正在尝试通过除机器人名称之外的标签来过滤机器人。预先感谢!

编辑:我已修复它,这就是我的方法!

const filteredRobots = robots.filter(robot => {
  const robotName = `${robot.firstName.toLowerCase()} ${robot.lastName.toLowerCase()}`;
  if (tagSearchField.length > 0) {
    return robot.tags
      .toString()
      .toLowerCase()
      .includes(tagSearchField.toLowerCase());
  }
  return (
    robot.firstName.toLowerCase().includes(nameSearchField.toLowerCase()) ||
    robot.lastName.toLowerCase().includes(nameSearchField.toLowerCase()) ||
    robotName.includes(nameSearchField.toLowerCase())
  );
});

0 个答案:

没有答案