同时过滤数组和字符串?

R. *_*sch 2 javascript filtering reactjs react-native

我在这里过滤物品:

let filter = this.props.data.filter(
  (item) => {
    return (
      item.fname.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1 ||
      item.lname.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1
    );
  }
);
Run Code Online (Sandbox Code Playgroud)

所以只要用户在输入字段中输入内容,我就会更新我的表格.然而,不仅是fnamelname,也有被称为数组字段[children]包含的人有孩子的名字:

children : ["Bob", "Andrew", "Mary-Jane"]

如果键入任何这些名称,我也想过滤.我该怎么做?我是一个javascript/React初学者,所以我很感激任何帮助!

Tho*_*lle 5

您可以使用some检查数组中的任何元素是否将搜索词作为子字符串:

const search = this.state.search.toLowerCase();
let filter = this.props.data.filter(
  (item) => {
    return (
      item.fname.toLowerCase().includes(search) ||
      item.lname.toLowerCase().includes(search) ||
      item.children.some(child => 
        child.toLowerCase().includes(search)
      )
    );
  }
);
Run Code Online (Sandbox Code Playgroud)