![](/img/trans.png)
[英]How to sort 2nd array by sorting the 1st one using Javascript or JQuery?
[英]How to turn form responses object into a 2D array with the 1st row being the key/header and the 2nd the values/answers using GAS?
以下是傳入數據的到達方式:
let e = {"authMode":"FULL","namedValues":{"Question 1":["Answer question 1"],"Question 2":["Answer question 2"],"Question 3.":["Answer Question 3"]}}
這應該是這樣的:
[
["Question 1", "Question 2", "Question 3"],
["Answer question 1", "Answer question 2", "Answer question 3"]
]
我將努力使標題與目標工作表列標題相匹配,因此,上面的 object 需要轉換為類似的格式。
如何使用 Google Apps 腳本完成此操作? 我見過一些例子,但在這個例子中沒有找到。
謝謝!
是這樣的嗎?
const e = { "authMode": "FULL", "namedValues": { "Question 1": ["Answer question 1"], "Question 2": ["Answer question 2"], "Question 3.": ["Answer Question 3"] } }
const res = Object.entries(e.namedValues).reduce((acc, [questionNumber, answer]) => {
acc[0].push(questionNumber)
// spread answer because answer is an array
acc[1].push(...answer)
return acc
}, [[], []])
或者更緊湊的方式不太容易理解
const res = Object.entries(e.namedValues).reduce((acc, [questionNumber, answer]) => [[...acc[0], questionNumber],[...acc[1], ...answer]] ,[[],[]]))
編輯表單通常會導致給定問題的可用答案數量增加。
function onMyForm(e) {
const arr = Object.keys(e.namedValues).reduce((a,c) => {
if(c && c.length > 0 && !a.hasOwnProperty(c)) {
a[1].push(e.namedValues[c][e.namedValues[c].length - 1]);
a[0].push(c);
}
return a;
},[[],[]])
return arr;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.