getSheetValues(1, 1, maxRows, 1)
返回一个包含1个或没有元素的maxRows数组 如果我将maxRow设置为5并且我在前3行(1,2和3)中有值,我将得到一个Object [] []
[[1.0], [2.0], [3.0], [], []]
所以我写了一些测试代码
function stripArray(arr){
return arr.map(function(t){if(t.length){return t[0];}else{return undefined;} }).filter(function(n){ return n != undefined });
}
function testArray(){
var arr=[[1.0], [2.0], [3.0], [], []];
var strippedArr = stripArray(arr);
Logger.log(strippedArr);
}
它就像一个魅力和日志
[1.0, 2.0, 3.0]
然后我的烦恼开始了。我写了一个函数来处理工作表。
function testSheet(){
var ssId="XXX";
var ss = SpreadsheetApp.openById(ssId);
var sheet = ss.getSheetByName("YYY");
var values = sheet.getSheetValues(1, 1, maxPortalToDeQueue, 1);
Logger.log(values);
Logger.log(stripArray(values));
}
我得到了一些疯狂的价值
[[1.0], [2.0], [3.0], [], []]
[1.0, 2.0, 3.0, , ]
有人可以帮我理解这种行为并获取我正在寻找的数据吗?
答案 0 :(得分:2)
虽然[]看起来应该有一个长度0,但它实际上是1,但没有内容。请改用它。
function stripArray(values) {
return values.filter(function(d) {
return d.length && d[0] !== '';
});
}