【发布时间】:2015-02-03 07:07:49
【问题描述】:
我写了下面的代码来从一段中搜索我的名字,
/*jshint multistr:true */
text = "Blah blah blah blah blah blah Elic \
blah blah blah Eric blah blah Eric blah blah \
blah blah blah blah blah Eric";
var myName = "Eric";
var hits = [];
var l=0;
var count=0;
// Look for "E" in the text
for(var i = 0; i < text.length; i++) {
if (text[i] === "E") {
for(var j = i; j < (myName.length + i); j++) {
for(var k =1; k < 4; k++) {
if(text[i+k] === myName[k]){
hits.push(text[j]);
}
else {
break;
}
}
}
}
}
if (hits.length === 0) {
console.log("Your name wasn't found!");
} else {
console.log(hits);
}
但是输出就像
[ 'E',
'E',
'E',
'r',
'r',
'r',
'i',
'i',
'i',
'c',
'c',
'c',
'E',
'E',
'E',
'r',
'r',
'r',
'i',
'i',
'i',
'c',
'c',
'c',
'E',
'E',
'E',
'r',
'r',
'r',
'i',
'i',
'i',
'c',
'c',
'c' ]
我确定这是因为第三个 for 循环,请提出一些建议来微调此代码,以便输出如下所示,
[ 'E', 'r', 'i', 'c', 'E', 'r', 'i', 'c', 'E', 'r', 'i', 'c', 'E', 'r', 'i', 'c' ]
提前致谢。
【问题讨论】:
标签: javascript arrays string search