【发布时间】:2017-07-26 10:21:21
【问题描述】:
我正在用 javascript 编写一个程序,它在文本中搜索我的名字并在控制台中记录相同的频率。 我首先检查文本的每个字母,当它与我名字的第一个字母匹配时,我使用另一个 for 循环将字母推入一个名为 hits 的数组中。字符串“text”中的字母被推到我的名字的长度使用 push ()。 在此之后,我检查数组“hits”和字符串“myName”是否相等,如果它们相等,我将计数加一。 但是我的代码不起作用,我不知道为什么,我想了很多,但一切都是徒劳的。请帮忙。
var text="abhishek apolo bpple abhishek",myName="abhishek",hits=[];
var count=0;
for(i=0;i<text.length;i++)
{
if(text[i]===myName[0])
{
for(j=i;j<(i+myName.length);j++)
{
hits.push(text[j]);
}
}
if(myName==hits)
{
hits=[];
count=count+1;
}
hits=[];
}
if(count===0)
console.log("Name not found!");
else
console.log(count);
【问题讨论】:
-
正则表达式呢?
-
if(myName==hits)永远不会通过,因为您将字符串与数组进行比较。 -
您是否有理由从头开始,而不是使用像
indexOf这样的搜索功能? -
是的,我正在将字符串与数组进行比较,但我使用的是“==”而不是“===”
-
谢谢 Teemu,你能推荐一些链接,我可以在其中阅读你所谈论的规则。感谢您的帮助。
标签: javascript arrays string