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