我想创建一个基本的搜索“引擎”。这是我的代码,但它不起作用:
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。:我已经学习了不到5天的JavaScript。
答案 0 :(得分:0)
如果您想在名字中找到一些文字,那么您可以使用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
}
}
答案 1 :(得分:0)
我不确定这是什么任务,但这是一个简单的程序。你可以在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)")
答案 2 :(得分:0)
以下是工作示例,我不喜欢警报和提示,但它可以告诉您应该朝哪个方向前进。 这只是一个简单的示例,我建议您花时间分析您的需求并学习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');
}
&#13;
我希望您能快速浏览代码中可怕的警报:)