我有一个代码块,它正在创建一个数组,我正在使用正则表达式搜索某些文本,如果找到,我将删除该元素并在其位置插入两个新元素,代码如下:
var Unique_items = ["P name1-Test based fee-200 Samples", "P name2-night fee-GG", "P name2-day light test-HH" ];
for (var i in Unique_items){
var temp_index = [];
var check_test_based_fee = new RegExp(/Test based fee/).test(Unique_items[i]);
if (check_test_based_fee==true){
temp_index.push(i);
temp_index.push(i+1);
Unique_items.splice(temp_index[0],"P name1-TBF-200 Samples:commitment");
Unique_items.splice(temp_index[1],"P name1-TBF-200 Samples:Excess");
}
}
Logger.log(Unique_items);
因此,无论何时Test based fee
出现在任何元素中,它都应该用两个新元素替换它,因为这里的Unique_items
是
["P name1-TBF-200 Samples:commitment", "P name1-TBF-200 Samples:Excess","P name2-night fee-GG", "P name2-day light test-HH"]
我不知道如何动态地准备和插入
P name1-TBF-200 Samples:commitment", P name1-TBF-200 Samples:Excess
请帮忙!
我相信你的目标是这样的。
-
您希望使用
var Unique_items = ["P name1-Test based fee-200 Samples", "P name2-night fee-GG", "P name2-day light test-HH"];
和"P name1-TBF-200 Samples:commitment"
和"P name1-TBF-200 Samples:Excess"
实现以下转换。["P name1-TBF-200 Samples:commitment", "P name1-TBF-200 Samples:Excess","P name2-night fee-GG", "P name2-day light test-HH"]
修改点:
- 在您的脚本中,需要修改
splice
。splice
的参数为splice(start, deleteCount, item1, item2, itemN)
。 - 如果
Unique_items
中包含2个元素,则改变i
的索引。需要考虑这种情况。
当这些要点反映在您的脚本中时,如何进行以下修改?
修改脚本:
var Unique_items = ["P name1-Test based fee-200 Samples", "P name2-night fee-GG", "P name2-day light test-HH"];
for (var i in Unique_items) {
var check_test_based_fee = Unique_items[i].includes("Test based fee");
if (check_test_based_fee == true) {
Unique_items.splice(i, 1, ["P name1-TBF-200 Samples:commitment", "P name1-TBF-200 Samples:Excess"]);
}
}
Unique_items = Unique_items.flat();
console.log(Unique_items);
注意:
- 在这种情况下,可以使用以下示例脚本:
var Unique_items = ["P name1-Test based fee-200 Samples", "P name2-night fee-GG", "P name2-day light test-HH"];
var res = Unique_items.reduceRight((ar, e) => [...ar, ...(e.includes("Test based fee") ? ["P name1-TBF-200 Samples:Excess", "P name1-TBF-200 Samples:commitment"] : [e])], []).reverse();
console.log(res)
参考:- 拼接()