[英]How to convert Map to array of object?
我正在嘗試將 Map 轉換為 object 的數組
假設我有以下 map:
let myMap = new Map().set('a', 1).set('b', 2);
我想將上面的 map 轉換為以下內容:
[
{
"name": "a",
"value": "1",
},
{
"name": "b",
"value": "2",
}
]
您可以使用Array.from
並映射鍵/值對。
let map = new Map().set('a', 1).set('b', 2), array = Array.from(map, ([name, value]) => ({ name, value })); console.log(array);
使用Spread語法和Array.map() :
let myMap = new Map().set('a', 1).set('b', 2); const arr = [...myMap].map(([name, value]) => ({ name, value })); console.log(arr);
您還可以使用任何兼容的迭代方法簡單地迭代Map
對象,並將每個項目作為對象添加到結果數組中。
例如,您可以通過以下方式使用Map.prototype.forEach()
:
const myMap = new Map().set('a', 1).set('b', 2);
const arr = [];
myMap.forEach((value, name) => arr.push({ name, value }));
console.log(arr);
或者,作為替代方案,您可以像這樣使用for...of
循環:
const myMap = new Map().set('a', 1).set('b', 2);
const arr = [];
for (const [name, value] of myMap) {
arr.push({ name, value });
}
console.log(arr);
很簡單,我將分步驟解釋:
const map = new Map().set('a', 1).set('b', 2).set('c', 3)
const mapArr = [...map] // array of arrays
key
- value
對。 map
function 返回一個包含object
個key
value
的新數組。const arr = mapArr.map(([key, value]) => ({key, value}))
** 請記住:** 我們用於映射數據的名稱將是在本例中映射的 object key
和value
的名稱。
一個班輪:
const map = new Map().set('a', 1).set('b', 2).set('c', 3) const arr = [...map ].map(([key, value]) => ({key, value})) console.log({arr})
像這樣傳播ES6:
let myMap = new Map().set('a', 1).set('b', 2); const result = Array.from(myMap).map(([name, value]) => ({name, value})) console.log(result);
僅使用 ES6 Spread語法:
const myMap = new Map().set('a', 1).set('b', 2);
const arr = [...myMap];
console.log(arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.