Google App脚本:用于返回两个范围之间的唯一值的arrray

时间:2016-01-22 23:09:52

标签: javascript google-apps-script

我正在尝试编写一个自定义函数,它将在比较两个数组时返回所有唯一值的数组。这就是我所拥有的,它不起作用:

function getUniqueCells(range1, range2) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range1 = sheet.getRange(range1);
  var range2 = sheet.getRange(range2);    
  var range1Val = range1.getValues();    
  var range2Val = range2.getValues();  
  var uniquesArr = [];    
  for (var i = 0; i <= range1Val.length; i++) {    
    for(var u = 0; u <= range2Val.length; i++){
      if(range1Val[i] === range2Val[u]) {
        break;
      } else if((u + 1) === range2Val.length){
        uniquesArr.push(range1Val[i]);
      };
    };
  }; 
  return uniquesArr;
}

有没有办法不让#34;内部错误执行自定义功能&#34;错误?

1 个答案:

答案 0 :(得分:0)

你的第二个for循环存在问题。

for(var u = 0; u&lt; = range2Val.length; i ++ ){

它应该是(var u = 0; u&lt; = range2Val.length; u ++ ){

您无法通过range1Val[i] === range2Val[u]进行检查。因为它们是数组。

我遇到了同样的问题。在这里找到答案:

compare rows on google spreadsheets