[英]How to combine data from an array and object and put together into an array in JavaScript?
我有一個數組,其中我有一些字符串值保存 id 以及選擇的答案,我有不同的 object,其中我有關於選擇的答案的詳細信息。 每當我們 select 來自問題的選項時,下面的數組就會保持更新。
arr = ["Q1A1", "Q2A3"]
假設 Q1 是問題號。 1 和 A1 是從問題中選擇的選項。 下面我有一個對應 Q1 的 object,其中包含有關答案的詳細信息,這個 object 在我們移至 Q2 時也會發生變化
{
id: "Q1",
answers: [
{
id: "Q1A1",
text: "Yes"
},
{
id: "Q1A2",
text: "No"
}
]
}
同樣,如果我們在 Q1 中的答案是 select,那么對於 Q2 我還有另一個 object,現在對於 Q2 我們有不同的 object
{
id: "Q2",
answers: [
{
id: "Q2A1",
text: "Test 1"
},
{
id: "Q2A2",
text: "Test 2"
},
{
id: "Q2A3",
text: "Test 3"
},
{
id: "Q2A4",
text: "Test 4"
}
]
}
我需要在包含問題和答案(例如“Q1A1”)的數組的幫助下查找 object 並需要找到所選答案的文本,即(“是”)如果你查看上面的問題 1 object .因此我需要像這樣放入數組中。
result = ["Q1_Yes","Q2_Test3"]
此代碼將幫助您獲得這些結果。
let selected = ["Q1A1", "Q2A3"]; let QA = [ { id: "Q1", answers: [ { id: "Q1A1", text: "Yes" }, { id: "Q1A2", text: "No" } ] }, { id: "Q2", answers: [ { id: "Q2A1", text: "Test 1" }, { id: "Q2A2", text: "Test 2" }, { id: "Q2A3", text: "Test 3" }, { id: "Q2A4", text: "Test 4" } ] } ]; let all_answers = QA.reduce((allanswers,qa)=>(qa.answers.map(d=> allanswers[d.id]=[qa.id,d.text]),allanswers),{}); const result = selected.map(selected => all_answers[selected].join('_')) console.log(result)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.