JavaScript 如何将普通对象转换为ES6 Map

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程