[英]How do I convert a Javascript Map to Object?
我需要將Map傳遞給一些需要對象的代碼。 我怎么去
new Map([["a", 1], ["b", 2]])
至
{a: 1, b: 2}
?
您不需要將映射鏈接到數組轉換和許多函數調用,您可以使用簡單的循環:
var obj = {};
for (var [key, value] of m) obj[key] = value;
請注意,如果密鑰尚未在該過程中轉換為字符串。
您可以使用Object.assign
並將項目映射為新對象。
var map = new Map([["a", 1], ["b", 2]]), object = Object.assign({}, ...[...map].map(([k, v]) => ({ [k]: v }))); console.log(object);
您可以像這樣使用Map.prototype.forEach
:
let map = new Map([["a", 1], ["b", 2]]), res = {}; map.forEach((value, key) => res[key] = value); console.log(res);
您可以使用spread syntax
將該Map
為數組,然后添加到對象。
var map = new Map([["a", 1], ["b", 2]]) var obj = {} var arr = [...map] arr.forEach(e => obj[e[0]] = e[1]); console.log(obj)
Object.fromEntries()
已包含在ECMAScript 2019中,因此很快將在所有主流瀏覽器中實現。
在撰寫本文時(2019年4月11日),Chrome 73和Firefox 63已經實現了該功能,還有BabelJs 7.4
const myMap = new Map([["a", 1], ["b", 2]]); const myObj = Object.fromEntries(myMap); console.log(myObj);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.