如何将 Map 转换为对象数组?

Nik*_*tha 34 javascript arrays

我正在尝试将 Map 转换为对象数组

假设我有以下地图:

let myMap = new Map().set('a', 1).set('b', 2);

我想将上面的地图转换成以下内容:

[
   {
      "name": "a",
      "value": "1",
   },
   {
      "name": "b",
      "value": "2",
   }
]
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 71

您可以获取Array.from并映射键/值对。

let map = new Map().set('a', 1).set('b', 2),
    array = Array.from(map, ([name, value]) => ({ name, value }));

console.log(array);
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要键值 - array = Array.from(map, ([name, value]) => ({ [name]: value })); (3认同)

Fra*_*ion 15

使用Spread 语法Array.map()

let myMap = new Map().set('a', 1).set('b', 2);

const arr = [...myMap].map(([name, value]) => ({ name, value }));

console.log(arr);
Run Code Online (Sandbox Code Playgroud)


Gho*_*med 8

ES6 的传播是这样的:

let myMap = new Map().set('a', 1).set('b', 2);

const  result = Array.from(myMap).map(([name, value]) => ({name, value}))

console.log(result);
Run Code Online (Sandbox Code Playgroud)