【问题标题】:Concat in a for loop google app scripts javascriptConcat 在 for 循环谷歌应用脚​​本 javascript 中
【发布时间】:2021-02-16 02:49:48
【问题描述】:

我正在尝试在 for 循环中使用 concat 通过另一个数组中的数据过滤一个数组。以下代码的元素记录正确,但最终数组记录的是一个空数组。

function Shipments (){
  var app = SpreadsheetApp;
  var movementSS = app.getActiveSpreadsheet();
  var infoSheet = movementSS.getSheetByName("Update Info");
  var orderInfoSheet = movementSS.getSheetByName("Order Info");

  var targetSheet = movementSS.getSheetByName("Shipments");
  var ShipLogSS = app.openByUrl(URL).getSheetByName("Shipping Details");


  var ShipArr = ShipLogSS.getRange(3,1,ShipLogSS.getLastRow(),ShipLogSS.getLastColumn()).getValues().
    filter(function(item){if(item[1]!=""){return true}}).
    map(function(r){return [r[0],r[1],r[2],r[4],r[10],r[11],r[16],r[18],r[23]]});

  var supplierData = orderInfoSheet.getRange(3,6,orderInfoSheet.getLastRow(),1).getValues().
    filter(function(item){if(item[0]!=""){return true}});


  var supplierList = [];
  for (var i in supplierData) {
    var row = supplierData[i];
    var duplicate = false;
    for (var j in supplierList) {
      if (row.join() == supplierList[j].join()) {
        duplicate = true;
      }
    }
    if (!duplicate) {
      supplierList.push(row);
    }
  }

  var supplierFilter = [];
  for(var i = 0; i < supplierList.length; i++){
    var shipments = ShipArr.filter(function(item){if(item[4]===supplierList[i][0]){return true}});
    supplierFilter.concat(shipments);
  }

  Logger.log(supplierFilter);

}

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript arrays for-loop google-apps-script concatenation


    【解决方案1】:

    您需要将concat 的结果分配给supplierFilter,以便在以后的迭代和外部范围内查看更改。

    您也可以立即返回在 .filter 回调中完成的比较,而不是 if 语句 - 它看起来更简洁。

    var supplierFilter = [];
    for (var i = 0; i < supplierList.length; i++) {
        var shipments = ShipArr.filter(function (item) { return item[4] === supplierList[i][0]; });
        supplierFilter = supplierFilter.concat(shipments);
    }
    Logger.log(supplierFilter);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      相关资源
      最近更新 更多