【问题标题】:How can I search for my name? (JavaScript)如何搜索我的名字? (JavaScript)
【发布时间】:2015-08-14 11:11:47
【问题描述】:

我想创建一个基本的搜索“引擎”。这是我的代码,但它不起作用:

alert("Search for your name!");

var name = prompt("Type in your name.").toLowerCase().split("");

var text = prompt("Type in some text with your name in it.").toLowerCase().split("");

var arrayNumber = 0;

var hits = [];

for(var i = 0; i < text.length; i++) {

    if(name !== hits){  

        if(text[i] === name[arrayNumber]) {

                hits.push(text[i]);
                arrayNumber = arrayNumber + 1;

        } else if (text[i] !== name[arrayNumber]) {
            hits = [];
            arrayNumber = 0;
        } else {
            alert("Soemthing went wrong!");
        }
    } else {
        alert(hits);    
    }   
}

我确定这很可怕,但我喜欢尝试:D PS.:我学习 JavaScript 不到 5 天。

【问题讨论】:

  • 想象一下把你的车开给修理工。 “这是我的车。它坏了。再见!”你觉得他会开心吗?
  • 基本上,我想在特定文本中找到名称并提醒它。

标签: javascript search search-engine


【解决方案1】:

如果你想在你的名字中找到一些文本,那么你可以使用 indexof。

function Search()
{
alert("Search for your name!");

var name = prompt("Type in your name.").toLowerCase().split("");

var text = prompt("Type in some text with your name in it.").toLowerCase().split("");
   if(name.indexof(text) > 0 )
   {
     /// here your logic
   } 
}

【讨论】:

    【解决方案2】:

    我不确定任务是什么,但这是一个简单的程序。你可以在 JSFiddle 中尝试一下

    alert("Search for your name!");
    
    var name = prompt("Type in your name.").toLowerCase();
    console.log(name);
    
    var text = prompt("Type in some text with your name in it.").toLowerCase().split(" ");
    console.log(text);
    
    var arrayNumber = 0;
    
    var hits = 0;
    
    for(var i = 0; i < text.length; i++) {
        if(name === text[i])
          hits++;
    }
    
    if(hits === 0)
        alert("Your name is not found!")
    else
        alert("Found your name " + hits + " time(s)")
    

    【讨论】:

      【解决方案3】:

      这是一个工作示例,我不喜欢警报和提示,但它可以告诉你应该往哪个方向走。 这只是一个简单的快速示例,我建议您花时间分析您的需求和学习 OOP JS,以便您的简单搜索的最终结构可以维护。

      alert("Search for your name!");
      
      var name = prompt("Type in your name.").toLowerCase().split(" ");
      var text = prompt("Type in some text with your name in it.").toLowerCase();
      var hits = 0;
      
      for(var i = 0; i < name.length; i++) {
      
         if(text.indexOf(name[i]) > -1 ) {
            hits++;
         }
      
      } 
      
      if(hits == name.length) {
         alert('full match');
      }
      else if(hits > 0 && name.length > 1) {
         alert('partial match');
      }
      else {
         alert('no matches');
      }

      我希望您能尽快摆脱代码中警报的可怕用法:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-02
        • 2018-03-05
        • 2016-12-12
        • 2013-04-13
        • 1970-01-01
        • 1970-01-01
        • 2012-12-13
        • 1970-01-01
        相关资源
        最近更新 更多