React Native 搜索以文本开头的单词

时间:2021-02-01 15:58:10

标签: javascript reactjs

当我搜索时,我只想要以 A 或 B....Z 开头的单词

示例:

A           Au         B          Be
Allow       August     Banner     Bemol
August                 Bemol
Animal

  searchFilter = (text) => {
    const newData = dizi.filter((item) => {
      const listItem = `${item.name.toLowerCase()}`;
      const textData = text.toLowerCase();
      return listItem.indexOf(textData) > -1;
    });
    this.setState({
      diziler: newData,
    });
  };

2 个答案:

答案 0 :(得分:0)

searchFilter = (text) => {
  const newData = dizi.filter((item) => {
    if (
      item.name.toLowerCase().startsWith("a") ||
      item.name.toLowerCase().startsWith("b")
    ) {
      const listItem = `${item.name.toLowerCase()}`;
      const textData = text.toLowerCase();
      return listItem.indexOf(textData) > -1;
    }
  });
  this.setState({
    diziler: newData,
  });
};

答案 1 :(得分:0)

有一个内置的字符串方法 .startsWith 可以使用。它区分大小写,因此您需要在 .toLowerCase()text 上使用 item.name

  searchFilter = (text) => {
    this.setState({
      diziler: dizi.filter((item) => 
       item.name.toLowerCase().startsWith(text.toLowerCase())
      );,
    });
  };