获取数组中的第一列

时间:2018-10-19 15:27:33

标签: google-apps-script google-sheets

我有一张纸,需要获取某一列的值(电子邮件地址),在这种情况下为C。假设该列中有三封电子邮件。日志给我:

“ [[[email1],[email2],[email3]]”

为了继续执行脚本,我需要使数组看起来像这样:

“ [电子邮件1,电子邮件2,电子邮件3]”

因此没有外部括号。我知道可以通过在“ .getValues()”后面添加“ [0]”来仅定位“ [email1]”。我尝试了类似“ [[all]]”的方法,但没有成功。我必须改变什么? 我知道,这可能很基础,但是我绝对是新手,感谢您的帮助。

function myFunction() {

  // Variables
  var id = "ID";
  var spreadSheet = SpreadsheetApp.openById(id);
  var inputSheet = spreadSheet.getSheetByName("inputSheet");
  var inputLR = inputSheet.getLastRow();
  var emailsAll = inputSheet.getRange(2, 3, inputLR).getValues();

  Logger.log(emailsAll);
}

2 个答案:

答案 0 :(得分:3)

尝试Array#mapArray#forEach

var em = emailsAll.map(function(e){return e[0];});//[[e],[e],[e]]=>[e,e,e]

答案 1 :(得分:1)

getValues()返回表示范围内行和列的二维数组。 在developer reference中了解更多信息。

遍历此数组以访问值。

for(var row=0;row<emailsAll.length;row++){
   for(var col=0;col<emailsAll[row].length;col++){
      var cellValue = emailsAll[row][col];
      Logger.log(cellValue);
   }
}

有关for循环herehere的参考资料。

纯js中的示例:

var emailsAll = [["email1"],["email2"],["email3"]];
for(var row=0;row<emailsAll.length;row++){
  for(var col=0;col<emailsAll[row].length;col++){
    var cellValue = emailsAll[row][col];
    console.log(cellValue);
  }
}