为什么这个 .push 不起作用?(JavaScript)

Why doesn't this .push work? (javascript)

本文关键字:JavaScript 不起作用 push 为什么      更新时间:2023-09-26
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 之后放在括号中的任何内容。这段代码有什么问题?

但它只会推送我在点击后放在括号中的任何内容。

没错,这就是为什么你不想在那里放一个字符串:

hits.push('text[j]');

但一个变量值:

hits.push(text[j]);
    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]);
       }      
   }

您的代码存在括号问题,在某些情况下您做错了.

您可以使用拆分功能。它让您有机会逐字检查您的姓名,而不是逐个字符检查您的姓名。

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);
}

您尝试执行的操作的简单示例是

if(text.indexOf(myName)!=-1)
   console.log(myName);
else
   console.log("Your name wasn't found");