簡體   English   中英

如何將數組和object中的數據合並到JavaScript中的數組中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM