我有一个包含以下元素的字符串数组:
2+2
3+3
sum
# Example comment
5+5
3+2
sum
# Random word
10-5
sum
我想在用+
分隔之前用元素替换每个单词sum
,但直到最近的一条评论(例如,# Example comment
)。因此,对于上面的数组,输出应该是:
2+2
3+3
2+2+3+3
# Example comment
5+5
3+2
5+5+3+2
# Random word
10-5
10-5
注意,第一个“块”没有注释,因为它在数组的开头,但它仍然正常工作。要达到这样的结果,最好的方法是什么?
发布于 2020-10-29 06:27:37
您可以使用一个for-loop
完成此操作,同时使用数组保存项目,直到到达注释(在这种情况下,我们将清空它并继续):
const arr = [
"2+2",
"3+3",
"sum",
"# Example comment",
"5+5",
"3+2",
"sum",
"# Random word",
"10-5",
"sum"
];
let items = [];
for(let i = 0; i < arr.length; i++){
const item = arr[i];
if(item === "sum") arr[i] = items.join("+");
else if(item.startsWith("#")) items = [];
else items.push(item);
}
console.log(arr);
https://stackoverflow.com/questions/64582121
复制相似问题