【问题标题】:Insert multiple string inside one string using for loop使用for循环在一个字符串中插入多个字符串
【发布时间】:2020-04-13 04:52:12
【问题描述】:

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

这是我尝试过的代码。

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

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

【问题讨论】:

  • 抱歉 Niroh,我们同时编辑,我恢复了你的一些编辑。现在应该可以了。请尽量在此处尽量减少帖子中的闲聊材料 - 我们更喜欢技术写作。
  • 好的,当我保存编辑时,我确实看到我犯了一个错误,++cnt 代码应该是 '' 和不是''
  • &lt;span&gt; 应该在哪里结束?请添加想要的结果。
  • 应该是前面+1个字符,所以lorem ipsumlorem ipsum

标签: javascript for-loop join position slice


【解决方案1】:

您可以通过从右侧迭代来减少数组,因为字符串会更改添加的 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);

【讨论】:

  • 这不是我要找的,我需要它在一个 for 循环中,这样我就可以使 span class="test-1" class="test- 2" class="test-3" 等等 :)
  • 没问题,你也可以使用数组的索引来计算。
  • 如何检查数组中的值是否为 -1 ?谢谢
  • 会发生什么,如果?
  • 那么它不应该添加跨度
猜你喜欢
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多