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

问题描述 投票:0回答:1

我正在尝试在另一个字符串的多个位置插入多个字符串,但没有任何运气

这是我尝试过的代码。

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);

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

javascript for-loop join position slice
1个回答
0
投票

您可以通过从右侧进行迭代来减少数组,因为字符串会更改添加的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, i) => s.slice(0, i) + '<span>' + s.slice(i, ++i) + '</span>' + s.slice(i), string);

console.log(result);
© www.soinside.com 2019 - 2024. All rights reserved.