javascript - 数组推送字符

标签 javascript arrays

这可能是一个愚蠢的问题,但它让我困惑。

var text = "Hello Mr Andreas Andreas Kostakis o ala krem Andreas o pianistas o poutsopnikt\o skaraveos o Andreas";
var myName = "Andreas";
var hits = [];

for ( var i = 0; i < text.length; i++){
    if ( myName[0] === text[i] )
    {
        for (var j = i; j <  (myName.length + i); j++){
            hits.push(text[j]);    
         }
    }
}
for ( var i  = 0; i < hits.length; i++ )
{
  document.write(hits[i]);
}

我在这段代码中感到困惑的部分是,第一个循环搜索 myName 字符串的第一个字符,即文本字符串中的“A”。当它找到它时(在我们的示例中,它会在第 8 次(从 0 开始)迭代中找到它。它会进入另一个循环,我们说 J = I 所以 j 的值为 8 ,并且只要 j其中 8 不等于名称字符串的长度 + 8(i) 将从 text[8] 开始推送字符,直到达到 myName + i 长度。我的问题是 attempts[] 数组会将字符放在哪里?它将从 hit[0] 开始?当它再次找到 'A' 时,它会从那里继续吗?为什么当它命中下一个 'A' 字符时它不会覆盖命中数组?

最佳答案

在 JavaScript 中,Array.prototype.push() 是非破坏性的,就像 concat() 方法一样。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

关于javascript - 数组推送字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42280939/

相关文章:

javascript - 简单的 SQL 到 PHP 数字递增动画 [Jquery]

javascript - ApexChart 列在缩放时调整大小

javascript - 在这种情况下如何使用 GAS 进行字典化?

java - 创建计数数组的最有效方法

C# Interop 将数组数组写入工作表

javascript - 删除空白数组条目的过滤器没有错误,但不起作用(javascript)

javascript - 当两个数组数据点匹配时执行函数

javascript - 在滚动条上隐藏和显示的响应式导航栏

javascript - 1974 年 Javascript 中的夏令时?

javascript - 如何解决响应显示 TypeError : toClient is not a function 的问题