簡體   English   中英

如何將Javascript地圖轉換為對象?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM