在特定索引处的字符串之后和之前多次插入 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。向后迭代可以避免这种情况。
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。向后迭代可以避免这种情况。