JavaScript 如何将普通对象转换为ES6 Map
任务是使用JavaScript将JavaScript对象转换为普通的ES6 Map。我们将讨论几种技术。要了解地图和对象之间的区别,请阅读JavaScript文章中的地图vs对象。
以下是使用JavaScript将普通对象转换为ES6 Map的几种方法:
- 使用map()构造函数和Object Entries方法
- 使用Map()和forEach()方法
- 使用Map()和reduce()方法
方法1:使用map()构造函数和Object Entries方法
- 创建一个对象。
- 创建一个新的地图。
- 将对象传递给地图并设置其属性。
示例: 在此示例中,我们将使用object.entries方法将对象转换为地图。
let obj = {
prop_1: 'val_1',
prop_2: 'val_2',
prop_3: 'val_3'
};
function GFG_Fun() {
const map = new Map(Object.entries(obj));
console.log(
"Val of prop_2 is " + map.get('prop_2'));
}
GFG_Fun()
输出
Val of prop_2 is val_2
方法2:使用map()和forEach()方法
在这种方法中,我们将对象转换为一个地图,通过将其传递给另一个名为createMap()的函数并使用对象.forEach()方法。
示例:
let obj = {
prop_1: 'val_1',
prop_2: 'val_2',
prop_3: 'val_3'
};
function createMap(obj) {
let map = new Map();
Object.keys(obj).forEach(key => {
map.set(key, obj[key]);
});
return map;
}
function GFG_Fun() {
const map = createMap(obj);
console.log(
"Val of prop_1 is " + map.get('prop_1'));
}
GFG_Fun()
输出
Val of prop_1 is val_1
方法3:使用Map()和reduce()方法
在JavaScript中,使用 arr.reduce() 方法可以将数组缩减为单个值,并对数组的每个值执行提供的函数(从左到右),并将函数的返回值存储在累加器中。
示例:
function convertObjectToMap(obj) {
const map = Object.keys(obj).reduce((result, key) => {
result.set(key, obj[key]);
return result;
}, new Map());
return map;
}
// Example plain object
let obj = {
prop_1: 'val_1',
prop_2: 'val_2',
prop_3: 'val_3'
};
const mapFromObject = convertObjectToMap(obj);
// Accessing Map values
console.log(mapFromObject.get("prop_1"));
console.log(mapFromObject.get("prop_2"));
console.log(mapFromObject.get("prop_3"));
输出
val_1
val_2
val_3