我有一個我迭代的物件。它有兩個級別,所以我做了兩個 Object.entries 迭代。
我需要的最終結果是一個二維陣列,如:[[1,2,3],[1,2,3]] 但不知何故我總是得到 [1,2,3,1,2,3]。由于稍后的 setValues() 操作,我需要第一種型別的陣列來將資料寫入 Excel。
這是通過物件進行一次迭代的代碼,在第二次迭代中,我說:如果答案不存在,則推入一個空格,因為陣列需要一定的長度(由于標題)。
for (const [key, value] of Object.entries(result)) {
answerID.push([value["id"],value["created_at"],value["form_id"],value["updated_at"]])
for (const [subKey,subValue] of Object.entries(value["answers"])){
if (subValue.hasOwnProperty("answer")) {
answerDetail.push(subValue["answer"]);
}
else{
answerDetail.push("");
}
}
answerArray.push(answerDetail)
// I also tried answerArray.push([answerDetail]) but then it returns [[[1,2,3,1,2,3]]]
}
編輯:根據要求,我寫了結果的結構,雖然充滿了私人資料,但我只能寫它的編輯版本。我使用 JSON 格式化程式來檢查我的編輯是否仍然連貫。
[{"id":"50993654","form_id":"212597363","ip":"","created_at":"2021-10-13 08:15:47","status":"ACTIVE", "new":"1","flag":"0","notes":"","updated_at":null,"answers":{"1":{"name":"partie1","order" :"2","text":"Partie 1 - QCM - Vous avez une 45 minutes pour soumettre le問卷。","type":"control_head"},"3":{"cfname":"Compte à rebours global ","name":"saisissezUne","order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{"name":"email4","order":"3","text":"E-mail","type":"control_email","answer":""} ,"7":{"name":"prenomprenom","order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}, {"id":"5099284185","form_id":"212592657363","ip":"","created_at":"2021-10-13 07:17:54","status":"ACTIVE"," new":"1","flag":"0","notes":"","updated_at":null,"answers":{"1":{"name":"partie1","order": "2","text":"Partie 1 - QCM - Vous avez une 45 分鐘傾吐 soumettre le 問卷。","type":"control_head"},"3":{"cfname":"Compte à rebours global","name" :"saisissezUne","order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{" name":"email4","order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name": "prenomprenom","order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]text":"Partie 1 - QCM - Vous avez une 45 分鐘傾吐 soumettre le 問卷。","type":"control_head"},"3":{"cfname":"Compte à rebours global","name": "saisissezUne","order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{"name ":"email4","order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":" prenomprenom","order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]text":"Partie 1 - QCM - Vous avez une 45 分鐘傾吐 soumettre le 問卷。","type":"control_head"},"3":{"cfname":"Compte à rebours global","name": "saisissezUne","order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{"name ":"email4","order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":" prenomprenom","order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]第 1 部分 - QCM - Vous avez une 45 分鐘填寫問卷調查。","type":"control_head"},"3":{"cfname":"Compte à rebours global","name":"saisissezUne", "order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{"name":"email4 ","order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":"prenomprenom"," order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]第 1 部分 - QCM - Vous avez une 45 分鐘填寫問卷調查。","type":"control_head"},"3":{"cfname":"Compte à rebours global","name":"saisissezUne", "order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{"name":"email4 ","order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":"prenomprenom"," order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]}}}]}}}]type":"control_head"},"3":{"cfname":"Compte à rebours global","name":"saisissezUne","order":"5","selectedField":"","static" :"No","text":"","type":"control_widget"},"4":{"name":"email4","order":"3","text":"電子郵件","type":"control_email","answer":""},"7":{"name":"prenomprenom","order":"4","text":"Prénom/Prénom"," type":"control_textbox","answer":""}}}]type":"control_head"},"3":{"cfname":"Compte à rebours global","name":"saisissezUne","order":"5","selectedField":"","static" :"No","text":"","type":"control_widget"},"4":{"name":"email4","order":"3","text":"電子郵件","type":"control_email","answer":""},"7":{"name":"prenomprenom","order":"4","text":"Prénom/Prénom"," type":"control_textbox","answer":""}}}]saisissezUne","order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{"name" :"email4","order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":"prenomprenom ","order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]saisissezUne","order":"5","selectedField":"","static":"No","text":"","type":"control_widget"},"4":{"name" :"email4","order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":"prenomprenom ","order":"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]"order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":"prenomprenom","order" :"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]"order":"3","text":"E-mail","type":"control_email","answer":""},"7":{"name":"prenomprenom","order" :"4","text":"Prénom/Prénom","type":"control_textbox","answer":""}}}]
Thank if you can help me with this,
Cedric
uj5u.com熱心網友回復:
您可以使用該.map函式通過僅針對answers鍵來更改每一行,然后使用該函式Object.values檢索answers的內容陣列并map使用name鍵重新獲取該內容。
let str = [{
"id": "50993654",
"form_id": "212597363",
"ip": "",
"created_at": "2021-10-13 08:15:47",
"status": "ACTIVE",
"new": "1",
"flag": "0",
"notes": "",
"updated_at": null,
"answers": {
"1": {
"name": "partie1",
"order": "2",
"text": "Partie 1 - QCM - Vous avez une 45 minutes pour soumettre le questionnaire.",
"type": "control_head"
},
"3": {
"cfname": "Compte à rebours global",
"name": "saisissezUne",
"order": "5",
"selectedField": "",
"static": "No",
"text": "",
"type": "control_widget"
},
"4": {
"name": "email4",
"order": "3",
"text": "E-mail",
"type": "control_email",
"answer": ""
},
"7": {
"name": "prenomprenom",
"order": "4",
"text": "Prénom/Prénom",
"type": "control_textbox",
"answer": ""
}
}
},
{
"id": "5099284185",
"form_id": "212592657363",
"ip": "",
"created_at": "2021-10-13 07:17:54",
"status": "ACTIVE",
"new": "1",
"flag": "0",
"notes": "",
"updated_at": null,
"answers": {
"1": {
"name": "partie1",
"order": "2",
"text": "Partie 1 - QCM - Vous avez une 45 minutes pour soumettre le questionnaire.",
"type": "control_head"
},
"3": {
"cfname": "Compte à rebours global",
"name": "saisissezUne",
"order": "5",
"selectedField": "",
"static": "No",
"text": "",
"type": "control_widget"
},
"4": {
"name": "email4",
"order": "3",
"text": "E-mail",
"type": "control_email",
"answer": ""
},
"7": {
"name": "prenomprenom",
"order": "4",
"text": "Prénom/Prénom",
"type": "control_textbox",
"answer": ""
}
}
}
]
let r = str.map(i => Object.values(i.answers).map(ii => ii.name))
console.log(r)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/326224.html
