![](/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.