比较两个数组以便在Google App脚本上找到相等值的最快方法

时间:2016-01-04 08:22:29

标签: arrays google-apps-script

我有两个arrays,如下所示。

bulkSheet[] - Original array
resultsArray[] -  Checking array

我正在比较' bulkSheet'的第一个元素。带有' resultArray'的数组。下面的代码是我到目前为止所做的。它执行正常但需要很长时间并且会出现Exceeded maximum execution time错误。

for(var line in bulkSheet) {
  for (var line2 in resultsArray)
  {
    if(bulkSheet[line][0] == resultsArray[line2][0])
    {
      // matched items
    }
  }
}

有没有最快的方式?

1 个答案:

答案 0 :(得分:1)

谢谢@ sandy-good !, 如果它是一维数组,我们可以使用indexOf()方法。

for(var line in firstArray) 
{
 var isMatched = secondArray.indexOf(firstArray[line]); 
 if (isMatched !== -1) 
 {
   var matchedValFromArray2 = secondArray[isMatched]
 };
}

如果要比较2D数组(或电子表格的两行),可以使用.join()方法。

for(var i in firstArray)
{
  var duplicate = false;
  for(var j in secondArray)
  {
    if(firstArray[i].join() == secondArray[j].join())
    {
      var matchedValFromArray2 = firstArray[i];
      break;
    }
   }
 }