应用程序脚本-比较两个数组,找出差异(单元格的值和索引)



我有两个垂直的1D数组,一个包含现有数据,另一个可能(潜在(存在差异。

我希望能够比较这两个数组,找出差异和每个单元格的索引。

然后,我将使用这些信息在现有数据中找到需要更改的适当单元格,并在这些特定单元格中设置新值,而无需复制和粘贴整个数组。

例如:

新数据
现有数据
John Smith John Smith
012345 012345
六年级 七年级
555-1234 555-1357
小号
第5期 第2期
Jane Smith Jane Smith
js@email.com js@email.com

解决方案:

遍历新的数据数组。对于每个值,检查新值是否与旧值匹配。如果是这种情况,请将相应的值和索引添加到list中。

然后迭代list,对于每对值和索引,将值写入相应的单元格。

代码段:

newVal.forEach(function(row, index) {
if (row[0] === origVal[index][0]) {
list.push([row[0], index]);
}
});
var firstRow = 2; // Change according to your preferences
var columnIndex = 1; // Change according to your preferences
list.forEach(data => {
sheet.getRange(data[1] + firstRow, columnIndex).setValue(data[0]);
});

注意事项:

  • 我不知道数据应该写在哪里,所以我使用了未定义的sheet,以及firstRowcolumnIndex的随机值。请根据您的喜好进行更改
  • 从脚本的角度来看,一次将整列写入目标范围会更高效,因为这样可以最大限度地减少脚本和电子表格之间的交互次数(请参阅使用批处理操作(。不过,由于您只想写入更新后的数据,因此我提供了一个执行此操作的脚本