簡體   English   中英

如何將 javascript object 與 arrays 轉換為具有相應名稱和值的對象數組?

[英]how do you convert javascript object with arrays in to array of objects with corresponding name and value?

這里的程序員同事,由於某種原因,我花了兩天時間,但我不能正確地做到這一點,所以請幫幫我。 對於每個鍵,我有一個 object 和 arrays,如下所示:

 var arraysObject = { "North American": [ "CONUS", "NAMER", "CONUS/AK", "US-NC", "US-NE", "US-NW", "US-SC", "US-SE" ], "Oconus": [ "ALASKA", "GUAM", "HAWAII", "POLAR", "US-SAMOA" ], }

我有一個已選擇的區域列表,如下所示

 var listOfAreas = ["CONUS", "GUAM","US-SAMOA"]

我想創建以下 object:

 var result = [{ "North American":"CONUS", "Oconus": "GUAM" }, { "North American": "", "Oconus":"US-SAMOA" }]

請注意,僅當最后一個密鑰已滿並盡可能填充 object 時,它才會創建新的 object。 在我的實現中,它為每個單獨的字符串創建一個 object 並將其分配給密鑰 using 然后使用它推送它。map 這不起作用。 我希望它相應地填充每個 object 並僅在必要時創建一個新的 object。 感謝你的幫助。 最好的,一個假人。

您可以使用 object 來跟蹤鍵的索引,並使用幫助器 object 來還原值/鍵關系。

 const arraysObject = { "North American": ["CONUS", "NAMER", "CONUS/AK", "US-NC", "US-NE", "US-NW", "US-SC", "US-SE"], "Oconus": ["ALASKA", "GUAM", "HAWAII", "POLAR", "US-SAMOA"] }, keys = Object.fromEntries(Object.entries(arraysObject).flatMap(([k, a]) => a.map(v => [v, k]))), EMPTY = Object.fromEntries(Object.keys(arraysObject).map(k => [k, ''])), listOfAreas = ["CONUS", "GUAM","US-SAMOA"], indices = {}, result = []; listOfAreas.forEach(value => { const key = keys[value]; indices[key]??= 0; (result[indices[key]++]??= {...EMPTY })[key] = value; }); console.log(result);
 .as-console-wrapper { max-height: 100%;important: top; 0; }

暫無
暫無

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

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