Javascript 在每个索引处插入一个元素-JS

Javascript 在每个索引处插入一个元素-JS,javascript,html,Javascript,Html,所以我有一个数组,我想循环通过,在每个索引,我想插入一个字符串 我的循环基于下面的代码,希望它能工作。但每次它破坏我的浏览器,你知道为什么吗 //code works fine var array = ['a', 'b', 'c']; i = 0; while (i <= array.length) { array.splice(i, 0, 0); i += 2; } console.log(array); <h4>slappin' and pamp

所以我有一个数组,我想循环通过,在每个索引,我想插入一个字符串

我的循环基于下面的代码,希望它能工作。但每次它破坏我的浏览器,你知道为什么吗

//code works fine
var array = ['a', 'b', 'c'];
    i = 0;
while (i <= array.length) {
    array.splice(i, 0, 0);
    i += 2;
}
console.log(array);


<h4>slappin' and pampering the modern way</h4>

//problematic code
function get_nodes() {
    let el = document.querySelector("h4");
    let childnods = el.innerText;
    let newArray = childnods.split(' ');

    let i = 0;
    while (i <= newArray.length) {
        newArray.splice(i, 0, 'test');
            i += 2;
    }
    
    console.log(newArray);
    }

get_nodes()

Expected result would be:
newArray = ["test", "slappin'", "test", "and", "test", "pampering", "test", "the", "test", "modern","test", "way", "test"]
//代码工作正常
变量数组=['a','b','c'];
i=0;

而(i您可以在空格上拆分字符串,并使用
array#flatMap
在每个单词后添加
test
单词

const语句=document.querySelector(“h4”).innerText,
结果=语句.split(“”).flatMap(word=>[word,'test']),
输出=['test'].concat(结果);
console.log(输出);
slappin'和纵容现代方式
那么:

let el=document.querySelector(“h4”);
让childnods=el.innerText;
设arrayOfItems=childNodes.split(“”);
控制台日志(arrayOfItems);
让newString=arrayOfItems.join(“,test”);
设newArray=newString.split(',');
console.log(newArray);

slappin'和纵容现代方式
实际上,您已经为预期输出编写了正确的代码,只需替换
数组.splice(i,0,'test');
newArray.splice(i,0,'test'))
在你的while循环中。

你期望的输出是什么?你能再解释一下吗?添加了期望的结果,谢谢提醒!我这样做了,我的浏览器仍在崩溃。我仍然想找出原因。是否有控制台错误或你没有得到正确的输出?我在控制台中没有得到任何输出。浏览器似乎进入了无限循环。清除缓存后,它会工作。Thx