Así es como llegan los datos entrantes:
let e = {"authMode":"FULL","namedValues":{"Question 1":["Answer question 1"],"Question 2":["Answer question 2"],"Question 3.":["Answer Question 3"]}}Esto debería verse así:
[ ["Question 1", "Question 2", "Question 3"], ["Answer question 1", "Answer question 2", "Answer question 3"] ]Trabajaré para que los encabezados coincidan con los encabezados de columna de la hoja de destino y, por lo tanto, el objeto anterior deberá convertirse a un formato similar.
¿Cómo se puede hacer esto usando Google Apps Script? He visto algún ejemplo, pero ninguno encontrado en este precisamente.
¡Gracias!
¿Es esto algo así?
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 }, [[], []])o una forma más compacta menos comprensible tal vez
const res = Object.entries(e.namedValues).reduce((acc, [questionNumber, answer]) => [[...acc[0], questionNumber],[...acc[1], ...answer]] ,[[],[]]))La edición del formulario a menudo hace que aumente el número de respuestas disponibles para una pregunta determinada.
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; }