gpt4 book ai didi

javascript - 为什么此代码返回 3 维数组

转载 作者:行者123 更新时间:2023-11-29 23:07:50 25 4
gpt4 key购买 nike

我想获取多个值,所以使用 getValues 但它返回数组意外维度。
在下面的代码中,sheet 是一个获取 SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Example");

的对象
var rng = sheet.getRange(2,1,3);    
var rngVls = rng.getValues();

Logger.log(rng.getValue()); // log1
Logger.log(rngVls); // log2
Logger.log(rngVls[0]); // log3

我希望得到如下结果。 log2 是我想要得到的。

  • log1 = Bravo
  • log2 = [[Bravo],[Charlie],[Delta]]
  • log3 = Bravo

但意想不到的维度出现如下。我不明白为什么。

  • log1 = [Bravo,[]]
  • log2 = [[[Bravo],[Charlie],[Delta]],[]]
  • log3 = [[Bravo],[]]

请帮帮我,我怎样才能得到一个二维的 B-C-D 数组??


-添加道歉-

uhhhhhh 很抱歉浪费你的时间,这只是我的愚蠢错误。我读的不是“日志”,而是“运行记录”。我得到了我想要的,谢谢大家的好意。我感到很沮丧让代码。

最佳答案

getValues() 返回二维数组。不要依赖将对象记录到日志来确定其属性。而是使用适当的 JavaScript 1.6 方法,如 typeofinstanceof、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);

Logger.log('log6 %s', JSON.stringify(rngVls)); 

记录这样的东西

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

注意事项:

  1. getValue() 返回引用范围的左上角值。
  2. Google Apps Script IDE 不具备与 Google Chrome 开发者工具控制台等其他工具相同的功能。

相关

关于javascript - 为什么此代码返回 3 维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com