我有一個想要展平的陣列以對其進行迭代。我得到了陣列,然后使用以下函式將其展平:
var Array = ss.getRange("G2:G").getValues(); ArrayFlat = flatten(Array);
展平輔助函式
function flatten(array) {
var flattenedArray = [];
for (var i = 0; i < array.length; i ) {
flattenedArray.push(array[i][0])
}
return flattenedArray;
}
我希望后面兩個日志的輸出相同,但我得到不同的日志。
function test() {
Logger.log(Array) // unflattened array
Logger.log(flatten(Array)) // flattended array
Logger.log(ArrayFlat) // []
}
有人可以指出我正確的方向,即錯誤所在嗎?
編輯:我有一個解決問題的方法(flat()),但沒有回答我的問題,為什么我的日志輸出如此不同?!
uj5u.com熱心網友回復:
嘗試:
ss.getRange("G2:G").getValues().flat();
Array.flat()
function flatten() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet0");
const array = ss.getDataRange().getValues();
var fA = [];
if(array.length) {
array.forEach((r,i) => {
if(array[i].length) {
r.forEach((c,j) => {
fA.push(c);
})
}
})
} else {
fA.push(r[0])
}
Logger.log(JSON.stringify(fA));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/442365.html
標籤:javascript 数组 谷歌应用脚本 展平
