在下表中,將資料放入兩個看起來像這樣的單獨物件中最有效的方法是什么,洗掉所有空格。
這是我到目前為止所擁有的,但它只占用了這么多行,我什至不完整。我仍然需要分成兩個陣列。
我想要一個物件的原因是因為真實資料是財務資料,所以我希望該物件包含例如可以將 this.value 添加到 this.value2 的方法。但也許一個物件并不是實作這一目標的最佳途徑。
任何幫助將不勝感激。
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const ws = ss.getSheetByName('Sheet1')
const data = ws.getDataRange().getDisplayValues()
Logger.log(data)
const array = data.map(function(row) {
return [row[0],row[1],row[2]]
}).filter(function(row) {
return row[0] != '' && row[1] != "" && row[2] != ""
})
Logger.log(array)
}
| 蘇珊 | 以前的 | 展示 |
|---|---|---|
| 值 1 | 23 | 45 |
| 價值 2 | 34 | 876 |
| 價值 3 | 456 | 456 |
| 價值 3 | 34 | 324 |
| -- | -- | -- |
| 雷切爾 | ||
| 值 1 | 123 | 234 |
| 價值 2 | 123 | 654 |
| 價值 3 | 456 | 456 |
| 價值 4 | 43 | 45 |
輸出:
let Susan = {
"value 1" = [23,45],
"value 2" = [34,876],
"value 3" = [456,456],
"value 4" = [43,45]
}
let Rachel = {
"value 1" = [123,234],
"value 2" = [123,654],
"value 3" = [456,456],
"value 4" = [43,45]
}
uj5u.com熱心網友回復:
問題及解決方案:
您提供的示例輸出沒有 JS 物件的有效語法。因此,我想為您的物件提出一種替代結構,它不依賴于變數名來存盤資訊。
在這種情況下,我建議構建一個物件陣列,其中每個物件都有兩個屬性name(例如Susan)和values,其值本身就是一個物件。中的每個屬性都values將具有作為鍵的 valuename和作為 value 的值陣列。
我認為建議的結構將使進一步的檢索和更新更加舒適。
代碼示例:
function spreadsheetValuesToObject() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getSheetByName('Sheet1');
const data = ws.getDataRange().getDisplayValues();
const objects = [];
let currentName;
data.forEach(row => {
const [a, b, c] = row;
if (a) { // Check populated row
if ((!b || b === "Previous") && (!c || c === "Present")) { // Name row
objects.push({ name: a, values: {} });
currentName = a;
} else { // Value row
const obj = objects.find(obj => obj.name === currentName);
if (obj) { // Check name exists
if (obj.values[a]) { // Check value exists
obj.values[a].push(b,c);
} else {
obj.values[a] = [b,c];
}
}
}
}
});
return objects;
}
輸出:
[
{
"name":"Susan",
"values": {
"Value 1":["23","45"],
"Value 2":["34","876"],
"Value 3":["456","456","34","324"]
}
},
{
"name":"Rachel",
"values": {
"Value 1":["123","234"],
"Value 2":["123","654"],
"Value 3":["456","456"],
"Value 4":["43","45"]
}
}
]
筆記:
In the sample above, it is assumed that name rows either have the headers Previous and Present on columns B and C, or that these cells are empty.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/425120.html
標籤:javascript 数组 目的 谷歌应用脚本
上一篇:無法覆寫javascript陣列
