我有這個代碼片段:
function getTimeFrames(){
var ss = SpreadsheetApp.getActive();
var cell = ss.getRange("C1").getValue();
Logger.log(cell);
var s = ss.getSheetByName(cell).getRange("M2:M");
var unique = new Set(s.getValues());
unique.forEach(x => Logger.log(x))
}
此代碼將從用作 UI 的 Google 表格電子表格中呼叫,其中 C1 單元格將是用于存盤資料的表格的名稱。在該表中,我有一個列 (M),我需要從中獲取唯一值,以便存盤在 UI 表的下拉串列中。
我遇到的問題是我根本無法讓唯一值部分起作用。在我的整個實驗程序中,我要么得到列 M 的所有值的串列,要么根本沒有 Logging 輸出。
任何幫助是極大的贊賞!
uj5u.com熱心網友回復:
嘗試
function getTimeFrames(){
var ss = SpreadsheetApp.getActive();
var cell = ss.getRange("C1").getValue();
Logger.log(cell);
var unique = ss.getSheetByName(cell).getRange("M2:M").getValues().flat().filter(onlyUnique)
console.log(unique)
}
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
uj5u.com熱心網友回復:
在ES6之前,這確實是一項艱巨的作業。但是現在,結合使用filter()和indexOf()您可以輕松實作。
例如:
var List = ['One','Two','Two','One','One','Two','One','Three']
const uniqueList = (value,index,self) =>
{return self.indexOf(value) ===index;}
var finalUniqueList =List.filter(unique);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/491138.html
上一篇:提取中間有或沒有點的前六位數字
