在特定索引处的字符串之后和之前多次插入 space javascript p5.js

insert space after and before in string at specific index multiple times javascript p5.js

str = '12512';
indexes = [0, 3]
lngth = 2; 

结果应该是:str = ' 12 5 12 '

如何在知道字符长度和它们所在的索引的情况下在那里添加空格?

我试着用

for (i=0; i<indexes.length; i++){
     var spb = [str.slice(0, indexes[i]), " ", str.slice(indexes[i])].join('');
     var spa = [str.slice(0, indexes[i]+lngth), " ", str.slice(indexes[i]+lngth)].join('');
       console.log(spb);
       console.log(spa);
    }

它似乎有效,虽然输出是这样的,因为我需要搜索每个索引:

spa 12 512
spb  12512
spa 12512 
spb 125 12

如何进行这样的输出' 12 5 12 '

你需要向后迭代

for (i = indexes.length - 1; i >= 0; i--) {
   str = str.slice(0, indexes[i] + lngth) + " " + str.slice(indexes[i] + lngth);
   str = str.slice(0, indexes[i]) + " " + str.slice(indexes[i]);
}

为什么?

否则索引会混淆,例如在插入一个 space 之后,所有后续索引都会移动 1。向后迭代可以避免这种情况。