javascript - 如何在 App 脚本中比较 2 个数组

标签 javascript arrays google-apps-script

我找不到如何在应用程序脚本中比较两个数组,所以这就是我想到的(使用 stackoverflow 的问答方法)。

我想要一个函数来显示数组 1 中与数组 2 相同且与数组 2 不同的内容。

如果有人有更有效的方法,请发布。

最佳答案

我发现这更简洁,如果您要进行大量记录,则速度更快。如果您不关心保留主数组,只需使用它们而不是将它们复制到相同/差异中,您可以更快地加快速度。 它的工作原理是从差异中删除那些被发现相同的内容,并从相同的内容中删除并将不同的内容添加到差异区域中。

//
function exampleCopareArrays(){
  var array1 = [1,2,3,5];
  var array2 = [5,1,4,6];
  var same = array1;
  //Set Same array = to 1 we will be deleting here
  var diff =array2;
  //Set dif array as one we will be adding too.
  var matchfound = false;


  for (var i=0; i < same.length; i++)
  {

    matchfound=false;
    for (var p=0;p < diff.length;p++)
    {

    if (same[i] == diff[p])
    {
      diff.splice(p,1);
      matchfound=true;
      continue;
    }
    }
    if (matchfound==false)
    {
      diff.push(same[i]);
      same.splice(i, 1)
      i=i-1;
    }
  }
  same.sort();
  diff.sort();
  Logger.log(same);
  Logger.log(diff);; 
}

关于javascript - 如何在 App 脚本中比较 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209066/

相关文章:

JavaScript 断点在 Visual Studio 2008 中不再起作用?

Javascript html dom元素数组for in循环

Python - 对单个元素的更新会影响同一列中的所有元素

javascript - 如何将json数据插入到表中?

javascript - 如何更改 botman.io 小部件的默认背景颜色

单击图像时 Javascript 未运行

php - php foreach循环中的HTML表,其中仅当元素等于表列标题名称时才填充单元格数据

google-apps-script - 在 Apps 脚本中获取完整的浏览器 URL

电子邮件设置 API 身份验证

javascript - 无法使用 Google App 脚本打开 FilePicker