Javascript 为什么这段代码返回三维数组
我想得到多个值,所以使用getValues,但它会返回数组意外的维度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],
在下面的代码中,sheet是一个获取SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“示例”)的对象 我预期的结果如下log2是我想要的。
- log1=Bravo
- log2=[[Bravo],[Charlie],[Delta]]
- log3=Bravo
- log1=[Bravo,[]
- log2=[[Bravo],[Charlie],[Delta],[]
- log3=[[Bravo],][]
-补充道歉- 我很抱歉浪费了你的时间,这只是我愚蠢的错误。 我读的不是“日志”,而是“运行记录”。 我得到了我想要的,谢谢你的好意。我感到很失望。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()
返回引用范围的左上角值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]]