【发布时间】:2021-02-06 20:24:50
【问题描述】:
我正在尝试使用 Google Apps 脚本仅过滤完全匹配项。我见过类似的问题,但我似乎无法将它们应用于我的情况。
在一张纸上,我有一个信息表,其中 A 列中的项目名称,B 列中的“成分”和 C 列中的“数量”。A 列包含名为“测试”和“测试 2”的项目。当我过滤对于测试 2,我得到了测试和测试 2 的结果。这是我正在使用的代码:
var costSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Cost');
var ingSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Recipe Ingredient');
// Create list of items to filter from the full list
var rows = costSheet.getLastRow();
var itemList = costSheet.getRange(2, 1, rows - 1).getValues();
// Convert itemList to array to be used in filter
itemList = itemList.join();
// Get full non-filtered data
var fullList = ingSheet.getRange('A2:C514').getValues();
// Apply filter criteria
function checkMatch(item) {
return itemList.indexOf(item[0]) != -1;
}
filterList = fullList.filter(checkMatch);
// Clear target location, then place filtered data
costSheet.getRange('C2:E514').clearContent();
costSheet.getRange(2, 3, filterList.length, 3).setValues(filterList);
我从所有三列中获得多个项目的准确结果没有任何问题,我遇到的唯一问题是当我尝试过滤以完整列表中另一个项目的名称开头的项目时(例如过滤for Test 2 返回 Test 和 Test 2,而我希望它只返回 Test 2)。
我是使用 Google Apps 脚本/Javascript 的新手,因此是“业余”编码。
【问题讨论】:
标签: javascript google-apps-script google-sheets