【问题标题】:JavaScript : Search bar taking into consideration order of lettersJavaScript:考虑字母顺序的搜索栏
【发布时间】:2020-02-25 08:38:19
【问题描述】:

这是我在 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,字符串中是否有空格字符,例如,它将显示所有带有空格的字符串。我想考虑每个字母的顺序来改进这个搜索功能。 谢谢大家!

【问题讨论】:

  • 我想改进这个搜索功能,考虑到每个字母的顺序 这是什么意思?您的意思是,如果filter 中索引index 处的字符也在该索引处的tasks[i] 中,您是否只想要匹配?
  • @j0nCvn 是否要从文本中的索引 0 开始匹配,而不是从任何地方开始?
  • @tudor.gergely 是的,就是这样!

标签: javascript function search


【解决方案1】:

使用startsWith 代替indexOf

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

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

【讨论】:

  • 太棒了,这正是我想要的,非常感谢您的帮助和建议
猜你喜欢
  • 2013-08-22
  • 1970-01-01
  • 2021-11-10
  • 2021-02-12
  • 2021-10-20
  • 2019-06-25
  • 2011-09-28
  • 2017-10-25
  • 1970-01-01
相关资源
最近更新 更多