【发布时间】:2018-09-07 06:04:20
【问题描述】:
我在 Google 电子表格中有两个列表:“现有公司”和“新公司”。 我想比较这两者并找出“现有公司”中不存在“新公司”中哪些唯一条目,获取这些条目并从“新公司”中删除所有其他条目。
我已经制作了以下脚本来做到这一点:
function grabNewCompanies() {
// grab existing companies list from sheet into an array
var sh = SpreadsheetApp.openById("sheetID").getSheetByName("sheetName")
var row = sh.getDataRange().getLastRow()
var existingCompanies = sh.getRange(2,1,row - 1,1).getValues()
Logger.log(existingCompanies)
//grab new companies added
var sh = SpreadsheetApp.openById("sheetID").getSheetByName("sheetName")
var row = sh.getDataRange().getLastRow()
var newCompanies = sh.getRange(2,4,row - 1, 1).getValues()
Logger.log(newCompanies)
var array = [];
for(i=0; i<newCompanies.length; i++) {
for(j=0; j<existingCompanies.length; j++) {
if(newCompanies[i][0] !== existingCompanies[j][0]) {
array.push([newCompanies[i][0]]);
}
Logger.log(array)
}
我已经运行了这个脚本,但它失败了。
正确返回了两个数组(existingCompanies 和 newCompanies)。
但是,两者之间的比较似乎不起作用:它总是返回newCompanies数组的第一个元素,而不管它是否存在于existingCompanies中。
另外,如果newCompanies 包含多个existingCompanies 中不存在的条目,我不确定如何确保推入array 的值不重复。
谢谢。
【问题讨论】:
标签: arrays google-apps-script comparison