javascript - 使用for循环在一个字符串中插入多个字符串
问题描述
我试图在另一个字符串的多个位置插入多个字符串,但没有任何运气
这是我尝试过的代码。
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);
推荐阅读
- reactjs - 如何等待状态更新,然后在 React Js 中渲染或渲染更新的状态?
- ascii - 在 Snowflake 的 SELECT 语句中将非 ascii 或非英文字符替换为 ascii 或英文字符
- javascript - 如何只获取一次(获取一次后停止获取数据)
- arrays - 附加 CoreData Fetched Results 元素的数组是否必须是同一类型?
- hl7-fhir - 如何使用 Epic on FHIR API 获取所有 CareTeam 和 Patient FHIR 资源?
- python - 在远程 GPU 上运行 python 类函数
- bootstrap-5 - Bootstrap 手风琴不会在一页上展开
- python - 字符串索引超出范围 - 基于 Python 逻辑的错误?
- flutter - 颤振谷歌在选择后自动完成不显示任何内容
- r - How to bin a long continuous string into section of nth characters?