JavaScript:搜索栏考虑字母顺序

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

这是我在stackOverflow中的第一篇文章(请别成为怪物,呵呵)。我正在寻找有关搜索栏功能的建议或技巧。我已经使用过:

    for (i = 0; i < taskButton.length; i++) {
    //if there is a match 
        if (tasks[i].toUpperCase().indexOf(filter) > -1) {
        //display the match
          taskButton[i].style.display = "";
        } else {
          //hide the mismatch
          taskButton[i].style.display = "none";
        }
    }

但是对于indexOf,字符串中是否有空格字符,例如,它将显示所有带有空格的字符串。考虑到每个字母的顺序,我想改进此搜索功能。谢谢大家!

javascript function search
1个回答
0
投票

使用startsWith代替indexOf

for (let i = 0; i < taskButton.length; i++) {
  taskButton[i].style.display = tasks[i].toUpperCase().startsWith(filter)
    ? ''
    : 'none';
}

如上所述,您可以使用条件运算符使代码更简洁,并确保声明i变量-如果不声明变量,则将隐式分配给全局对象(是混乱的),,如果您处于严格模式,将引发错误。

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