[英]Non case sensitive remove row with specific data
我有這個 Google Apps 腳本,它正在檢查其中列出的單詞的特定列並刪除與這些單詞匹配的行:
function sort() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var values = rows.getValues();
var rowsDeleted = 0;
var arrayOfWords = ['möbelübernahme','können übernommen werden','caravan','wohnwagen']
for (var i = values.length - 1; i >= 0; i--) {
var row = values[i];
for (var j = 0; j < arrayOfWords.length; j++) {
if (row['21','17'].indexOf(arrayOfWords[j]) > -1) {
sheet.deleteRow(i+1);
rowsDeleted++;
break;
}
}
}
};
我可以讓單詞檢查不區分大小寫嗎? 因此,如果我包含像“mietwohnung”這樣的詞,它將刪除所有匹配的選項:MIETWOHNUNG、mietwohnung、Mietwohnung?
您需要將row
數組中的每個元素轉換為小寫。 為此,您需要使用map()和toLowerCase() 。 通過這種方式,您將應用toLowerCase
到row
每個元素。 修改將在這里:
if (row.map(r=>r.toLowerCase()).indexOf(arrayOfWords[j]) > -1)
row['21','17']
不是有效的 javascript 對象。 你不能像那樣對數組進行切片。 如果您的目標是僅檢查第21
和17
列,請改用此 if 語句:
if ([row[21],row[17]].map(r=>r.toLowerCase()).indexOf(arrayOfWords[j]) > -1)
請注意, row[21]
是工作表中的V
列,而row[17]
是R
列。 記住 javascript 中的索引從0
開始。 即, 0
是A
列, 1
是B
列等。
function sort() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var values = rows.getValues();
var rowsDeleted = 0;
var arrayOfWords = ['möbelübernahme','können übernommen werden','caravan','wohnwagen']
for (var i = values.length - 1; i >= 0; i--) {
var row = values[i];
for (var j = 0; j < arrayOfWords.length; j++) {
if (row.map(r=>r.toLowerCase()).indexOf(arrayOfWords[j]) > -1) {
sheet.deleteRow(i+1);
rowsDeleted++;
break;
}
}
}
};
已經提供的解決方案的替代方案
您可以簡單地使用toLowerCase()
- 例如,這樣“Mietwohnung”將變為“mietwohnung”,並且可以毫無問題地進行比較。
因此,您可以對腳本進行以下修改:
for (let i = values.length - 1; i >= 0; i--) {
var row = values[i];
var found = false;
for (let k = 0; k < row.length; k++)
for (let j = 0; j < arrayOfWords.length; j++)
if (row[k].toString().toLowerCase().indexOf(arrayOfWords[j]) > -1)
found = true;
if (found == true) {
sheet.deleteRow(i + 1);
rowsDeleted++;
}
}
上面的腳本循環遍歷數據范圍中的所有值,因此添加了另一個循環,然后使用toLowerCase()
函數檢查該值是否是arrayOfWords
數組的一部分,如果需要,刪除行. 此處使用found
變量來指示是否已找到該單詞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.