![](/img/trans.png)
[英]How to convert a javascript map of array into a json object in javascript?
[英]JavaScript es 6 convert Map to json object array
我有一个 Map,其键和值为 json object,例如
var myMap = new Map();
myMap.set('1', "mike");
myMap.set('2', "tom");
How could I turn it into an object array by re-construct the object schema (due to api requested) with value
and fullame
maps to the key and value in above Map like
[{value : 1, fullName: "mike"},{value : 2, fullName: "tom"},...]
我试过使用
Array.from(myMap).map(arr => ({ value: arr[0], fullName: arr[1] }));
(注意, Array.from(myMap)
会给你像数组数组一样的结果,没有办法正常使用属性名解构
[[1, "tom", 28],[2, "mike", 30],...]
因为它将首先转换为嵌套的 object 数组,所以我必须通过 map 的索引找到 id 和名称,例如arr[0]
给我value
,而arr[1]
给我fullName
...
还有其他更好的方法吗? 在这里也欢迎使用 Lodash 提出建议!
还有其他更好的方法吗?
您可以使用Array.from
的第二个参数而不是map
,并且可以对元组参数使用参数解构:
Array.from(myMap, ([value, fullName]) => ({ value, fullName }));
但是不,没有办法手动构造具有自定义属性名称value
和fullName
的对象数组。
我试过
Array.from(myMap).map(arr => ({ value: arr[0], name: arr[1] }));
但这将转换为嵌套的 object
看来您只是缺少对条目元组的值部分的.name
属性访问,仅获取名称字符串而不是整个 object:
Array.from(myMap).map(arr => ({ value: arr[0], name: arr[1].name }));
// ^^^^^
您可以通过使用参数解构语法来简化它
Array.from(myMap).map(([value, {name}]) => ({ value, name }));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.