使用for循环在一个字符串中插入多个字符串

Insert multiple string inside one string using for loop

我试图在另一个字符串的多个位置插入多个字符串,但没有成功

这是我试过的代码。

elInnerHtml = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";

var testPos = ["10", "15", "20"];
var output = '';
cnt = 0;

for (var i = 0; i < testPos.length; i++) {
  output += [elInnerHtml.slice(0, testPos[i]), '<span class="Test-' + ++cnt + '">', elInnerHtml.slice(testPos[i])].join('');
}

console.log(output);

当我 运行 代码时,它显示了许多相同的代码行。我该如何解决这个问题?

您可以通过从右侧迭代来减少数组,因为字符串会更改添加的 span 元素的索引。

var string = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
    indices = [10, 15, 20],
    result = indices.reduceRight((s, p, i) => `${s.slice(0, p)}<span class="test-${i + 1}">${s.slice(p, ++p)}</span>${s.slice(p)}`, string);

console.log(result);