gpt4 book ai didi

javascript - 根据一系列字符串条件删除行

转载 作者:行者123 更新时间:2023-12-02 16:48:31 28 4
gpt4 key购买 nike

我有数十个电子表格,数千行长,我想通过删除不满足条件的行来对它们进行子集化。

让我举一个简化的例子。假设 C 行具有大学系名称的字符串值(例如“ANTHRO”是人类学,“ART-HIST”是艺术史,等等)。大学有很多系,电子表格有每个系的很多条目,但我只想要人类学和艺术史的数据。因此,我的任务是编写一个脚本,删除不满足条件 RowC =“ANTHRO”或“ART-HIST”的每一行。

问题是,我不知道如何在 javascript/google-apps-script 中定义采用一系列(字符串)值的变量。在一次尝试中,我将“剔除”变量定义为一个数组,其中包含脚本判断数据的条件:

 var rowsDeleted = 0;
var keep = ["ANTHRO", "ART-HIST"];
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[2] != keep) {
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};

然而它并没有起作用。我知道我可以简单地编写 if(row[2] != "ANTHRO"|| != "ART"),但实际上条件远不止两个。定义所谓的“剔除”变量似乎更有效。

关于为什么数组方法不起作用有什么见解吗?谢谢。

最佳答案

您可以尝试使用indexOf。如果行值不在数组内,则返回值-1,否则返回索引。

  var rowsDeleted = 0;
var keep = ["ANTHRO",
"ART-HIST"];
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (keep.indexOf(row[2]) === -1) {
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};

关于javascript - 根据一系列字符串条件删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26899216/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com