Javascript 为什么这段代码返回三维数组

Javascript 为什么这段代码返回三维数组,javascript,arrays,multidimensional-array,google-apps-script,google-sheets,Javascript,Arrays,Multidimensional Array,Google Apps Script,Google Sheets,我想得到多个值,所以使用getValues,但它会返回数组意外的维度 在下面的代码中,sheet是一个获取SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“示例”)的对象 我预期的结果如下log2是我想要的。 log1=Bravo log2=[[Bravo],[Charlie],[Delta]] log3=Bravo 但意外的维度如下所示。我不明白为什么 log1=[Bravo,[] log2=[[Bravo],[Charlie],

我想得到多个值,所以使用getValues,但它会返回数组意外的维度
在下面的代码中,sheet是一个获取SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“示例”)的对象

我预期的结果如下log2是我想要的。

  • log1=Bravo
  • log2=[[Bravo],[Charlie],[Delta]]
  • log3=Bravo
但意外的维度如下所示。我不明白为什么

  • log1=[Bravo,[]
  • log2=[[Bravo],[Charlie],[Delta],[]
  • log3=[[Bravo],][]
请帮帮我,我怎样才能得到一个二维的B-C-D阵列??
-补充道歉-

我很抱歉浪费了你的时间,这只是我愚蠢的错误。 我读的不是“日志”,而是“运行记录”。 我得到了我想要的,谢谢你的好意。我感到很失望。getValues()返回一个2D数组。不要依赖将对象登录到日志来确定其属性。而是使用适当的JavaScript 1.6方法,如
typeof
instanceof
、JSON.stringify(object)等

例如:

function logSomeThings(){
  var sheet = SpreadsheetApp.getActiveSheet();
  var rng = sheet.getRange(2,1,3);    
  var rngVls = rng.getValues();

  Logger.log('log1 %s', typeof rng.getValue()); 
  Logger.log('log2 %s', rngVls instanceof Array);
  Logger.log('log3 %s', rngVls[0] instanceof Array);
  Logger.log('log4 %s', typeof rngVls[0][0]); 
  Logger.log('log5 %s', typeof rngVls[0][0][0]); 
}
结果

[19-01-31 10:32:24:187 CST] log1 number
[19-01-31 10:32:24:188 CST] log2 true
[19-01-31 10:32:24:189 CST] log3 true
[19-01-31 10:32:24:189 CST] log4 number
[19-01-31 10:32:24:190 CST] log5 undefined
关于JSON.stringify(rngVls)

类似这样的日志

[19-01-31 11:02:20:061 CST] log6 [[1],["#N/A"],[2]]
注:

  • getValue()
    返回引用范围的左上角值
  • 谷歌应用程序脚本IDE与谷歌Chrome开发者工具的控制台等其他工具没有相同的功能
  • 相关的


    提供
    Logger.log(rngVls.length)
    Logger.log(rngVls[0.length)
    使用4参数签名,即
    2,1,3,1
    ?谢谢,您的评论让我注意到我读了一些不同的文本。(内容也是一大好处)
    Logger.log('log6 %s', JSON.stringify(rngVls)); 
    
    [19-01-31 11:02:20:061 CST] log6 [[1],["#N/A"],[2]]