簡體   English   中英

如何在JavaScript中將數組值分配給對象作為鍵值

[英]How to assign array values into object as key values in javascript

我收到以下形式的請求:

req = {
"id": ["1","2"],
"values": ["fruit", "vegies"]
}

我要發送以下響應:

res = {
"idMap": {
    "1": ["fruit", "veggies"],
    "2": ["fruit", "veggies"]
}
}

我嘗試使用map函數,但是值以[Array]而不是[“ fruits”,“ vegies”]的形式出現 我附上以下代碼:

const values = req.values
const id = req.id.map((ids) => {
    const idmap = {
        [ids]: values
    }
    return idmap;
});
req = {
    "idMap": id
}

幫我這個家伙。 提前致謝..

您應該使用reduce來制作對象map返回一個數組。

 const req = { "id": ["1", "2"], "values": ["fruit", "vegies"] }; const res = { idMap: req.id.reduce((a, c, i) => (a[c] = [...req.values], a), {}) }; console.log(res); 
 .as-console-wrapper { max-height: 100% !important; top: auto; } 

您還可以遍歷數組並分配結果對象的屬性:

 const req = { "id": ["1", "2"], "values": ["fruit", "vegies"] }; let res = { idMap: {} }; let values = req.values; req.id.forEach((id, index) => res.idMap[id] = [...values]); console.log(res); 
 .as-console-wrapper { max-height: 100% !important; top: auto; } 

您可以使用(即將到來的) Object.fromEntries從映射的條目生成對象。

 var req = { id: ["1", "2"], values: ["fruit", "vegies"] }, res = { idMap: Object.fromEntries(req.id.map(k => [k, req.values])) }; console.log(res); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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