這是我的資料:
obj = Object {
Great Lakes: Array(3) ["Michigan", "Indiana", "Ohio"]
Heartland: Array(2) ["Missouri", "Illinois"]
}
我怎樣才能將它一一更改為:
{"Illinois": "Heartland", "Michigan": "Great Lakes", ...}
我必須使用Map、Object.entries和Array.flat()。
我用過 :namemap = new Map(Object.entries(obj).map(function ([k, v]) {return [v, k];} ))
但這不是我想要的,或者這可能不完整。
uj5u.com熱心網友回復:
您的代碼幾乎是正確的,您只需要迭代每個陣列中的值obj:
const obj = {
'Great Lakes': ["Michigan", "Indiana", "Ohio"],
'Heartland': ["Missouri", "Illinois"]
}
const namemap = new Map(
Object.entries(obj)
.map(([k, a]) => a.map(v => [v, k]))
.flat()
)
for (const [key, value] of namemap.entries()) {
console.log(`${key} : ${value}`);
}
uj5u.com熱心網友回復:
您可以嘗試.reduce和的組合.forEach來獲得您需要的價值
let data = {
'Great Lakes':["Michigan", "Indiana", "Ohio"],
'Heartland': ["Missouri", "Illinois"]
}
let result = Object
.entries(data)
.reduce((acc, [key, value]) =>
value.forEach((v) => acc[v] = key) || acc
, {})
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520848.html
上一篇:如何處理物件內部的函式
