当google apps脚本满足条件时,循环在数组上中断



我有一个数组,我试图在每个元素中识别一个特定的文本,只有当该元素从数组中存在匹配时才删除。

数组是

var Concat_names = ['Prod 1-Volume based deal-100 sections','Test Prod 1-Included Members-MB,'Prod 2-Commitment + Excess-100 sections','Prod 1-Flat Mon-TB'];
  1. 如果数组中的任何元素有Flat Mon,则从数组
  2. 中删除该元素
  3. 如果数组中的任何元素具有Included Members,则从数组
  4. 中删除该元素

下面是我尝试的-

for (var i in Concat_names) {
var check_included_mem = Concat_names[i].includes("Included Members");
if (check_included_mem == true) {
Concat_names.splice(i);
}
}
console.log(Concat_names);
for (var y in Concat_names){
var check_flat_mon = new RegExp(/Flat Mon/).test(Concat_names[y]); 
if (check_flat_mon==true){
Concat_names.splice(y);
}
}
console.log(Concat_names);

在上面的代码中,只要满足条件并且缺少数组中的其他元素,循环就会中断。

我得到的输出是
[ 'Prod 1-Volume based deal-100 sections' ] 

而输出应该是

['Prod 1-Volume based deal-100 sections','Prod 2-Commitment + Excess-100 sections']

请指导和帮助!

在您的脚本中,如何修改以下内容?

:

Concat_names.splice(i);

:

Concat_names.splice(i, 1);

在这种情况下,请将Concat_names.splice(i);都修改为Concat_names.splice(i, 1);

测试:

var Concat_names = ['Prod 1-Volume based deal-100 sections', 'Test Prod 1-Included Members-MB', 'Prod 2 - Commitment + Excess - 100 sections', 'Prod 1 - Flat Mon - TB'];
for (var i in Concat_names) {
var check_included_mem = Concat_names[i].includes("Included Members");
if (check_included_mem == true) {
Concat_names.splice(i, 1);
}
}
console.log(Concat_names);
for (var y in Concat_names) {
var check_flat_mon = new RegExp(/Flat Mon/).test(Concat_names[y]);
if (check_flat_mon == true) {
Concat_names.splice(y, 1);
}
}
console.log(Concat_names);

注意:

  • 在您的情况下,也可以使用以下脚本:

var Concat_names = ['Prod 1-Volume based deal-100 sections', 'Test Prod 1-Included Members-MB', 'Prod 2 - Commitment + Excess - 100 sections', 'Prod 1 - Flat Mon - TB'];
var res = Concat_names.filter(e => !["Included Members", "Flat Mon"].some(f => e.includes(f)));
console.log(res)

参考:

  • 拼接()

相关内容

  • 没有找到相关文章

最新更新