var text = "some text jjke kjerk jker helmi kjekjr helmi ekjrkje helmi";
var myName = "helmi";
var hits = [];
for (var i = 0; i < text.length; i++) {
if (text[i] === 'h') {
for (var j = i; j < text[i] + myName.length; j+=1) {
}
hits.push('text[j]');
}
};
if (hits.length === 0) {
console.log("Your name wasn't found!");
}
else {
console.log(hits);
}
我希望它在“文本”中找到“myName”,然后推送它。但它只会在hits.push之后推送我在括号中放入的任何内容。这段代码有什么问题?
答案 0 :(得分:1)
但它只会推动我在hits.push
之后放在括号中的任何内容
确切地说,这就是为什么你不想在那里放一个字符串:
hits.push('text[j]');
但是变量值:
hits.push(text[j]);
答案 1 :(得分:1)
for (var i = 0; i < text.length; i++) {
if (text[i] === 'h') {
for (var j = i; j < text[i] + myName.length; j+=1) {
hits.push(text[j]);
}
}
您的代码存在括号问题,在某些情况下您的错误。
答案 2 :(得分:1)
您可以使用分割功能。它使您有机会逐字检查您的姓名,而不是逐字符检查您的姓名。
var text = "some text jjke kjerk jker helmi kjekjr helmi ekjrkje helmi";
var myName = "helmi";
var hits = [];
var texts = text.split(" ");
for (var i = 0; i < texts.length; i++) {
if (texts[i] === myName) {
hits.push(texts[i]);
}
}
if (hits.length === 0) {
console.log("Your name wasn't found!");
}
else {
console.log(hits);
}
答案 3 :(得分:0)
您尝试做的简单示例是
if(text.indexOf(myName)!=-1)
console.log(myName);
else
console.log("Your name wasn't found");