javascript - 比较两个数组,如果在另一个数组中找到值,则将该值设置为 True

标签 javascript arrays google-apps-script

我有两个数组 A = [1,5,9,12,14] 且 B = [16,4,8,12] 两个数组的长度不同。我想将数组 A 与 B 进行比较。如果数组 A 的值在 B 中可用,则不要执行任何其他操作,将其添加到工作表中。 下面是我的代码,但我没有得到所需的输出。 有人可以帮助我吗?

function updateTicketsAreNotInDeploymentDoc() {
  var A = getJiraNoFromJira();
  var B = getJiraNoFromDoc();
  for(var i = 0; i<A.length; i++) {
    var data = new Array();
    for(var j=0; j<B.length; j++) {
      if(A[i] == B[j]) {
        Logger.log("found="+A[i]);
      }
    } 
    data.push(A[i]);
  }  

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName(RESULTANT_DEPLOYMENT_SHEET);
  sheet.appendRow(data);

}

最佳答案

Sheet.appendRow() method只接受单维数组,因为它只在工作表后添加一行。您必须仔细检查列表才能附加数据。正如文档中所述:

Appends a row to the spreadsheet. This operation is atomic; it prevents issues where a user asks for the last row, and then writes to that row, and an intervening mutation occurs between getting the last row and writing to it.

这里是一个代码示例:

编辑:正如@charlietfl指出的那样,之前还有其他问题:每次在 A 数组上循环时都会实例化数据数组。

正在修改代码以纠正此问题。

function updateTicketsAreNotInDeploymentDoc() {
  var A = getJiraNoFromJira();
  var B = getJiraNoFromDoc();
  var data = new Array();
  for(var i = 0; i<A.length; i++) {
    var Found = false;
    for(var j=0; j<B.length; j++) {
      if(A[i] == B[j]) {
        Logger.log("found="+A[i]); 
        Found = true;
      }
    } 
    if(Found == false){
      data.push(A[i]);
    }
  }  

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName(RESULTANT_DEPLOYMENT_SHEET);

  for(var k = 0; k<data.length; k++){
    sheet.appendRow([data[k]]);
  }
}

关于javascript - 比较两个数组,如果在另一个数组中找到值,则将该值设置为 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45143792/

相关文章:

javascript - 按 T​​ab 键切换到 HTML 中尚不可见的元素

arrays - 当 A 和 B 排序时找到最小的 A[i]^2 + B[i]^2

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

javascript - UrlFetchApp 请求在菜单功能中失败,但在自定义功能中没有(连接到外部 REST API)

javascript - JQuery 动画和 slideUp 同时

google-apps-script - 如何在一个谷歌应用程序脚本中访问多个电子表格(不是工作表)?

javascript - 使用 Angular2 将 JSON 发布到 Node 服务器返回 404 URL 未找到

javascript - 如何在浏览器中运行javascript代码

javascript - 从 OpenGraph 预览中再现视频 - 类型 "text/html"

javaFx 单选按钮和文本字段用户选择和用户输入