Javascript - 将对象转换为map的不同方法

474 阅读3分钟

学习如何在javascript中把一个对象转换为地图的例子。

如何在javascript中把普通对象转换为地图

在开发过程中,每个开发者都会面临这样的问题:数据的对象要转换为地图。

对象和地图在javascript中是不同的数据类型。

对象是一组项目,每个项目都包含键和值,用逗号隔开,用括号括起来。

地图是一个独立的数据结构,用于使用散列法存储键和值对。

这个例子显示了我们如何在javascript中创建一个对象

javascript中的对象声明和创建

let objData={"id":1,"name":"cloudhadoop"}  

地图是ES6中引入的一个单独的数据结构,用于存储键和值对。地图可以用Map关键字创建。
下面是一个创建内联地图的例子,用数据创建和分配。

var mapData = new Map([["1","cloudhadoop"],["2","name2"]]); 

两者都是JavaScript中独立的数据类型。对象到地图的转换不是自动的。我们必须写一段代码来处理这个问题。

转换的例子

我们有很多方法可以将对象转换为地图。
下面是使用对象键和地图关键字的例子。

  • 创建了内联对象
  • 使用new操作符创建的地图对象
  • 使用对象键和属性迭代数组检索了对象的属性数组
  • 将上述步骤中的数据作为一个地图传递出去
let objData = { "id": 1, "name": "cloudhadoop" }  
let map = new Map();  
map = Object.keys(objData).map(  
    key => [key, objData[key]])  
console.log(JSON.stringify(map));  

使用对象: ES6中地图构造函数的条目

Es6地图有一个构造函数,接受对象的结果。 entries方法。

let objData = { "id": 1, "name": "cloudhadoop" }  
const map = new Map(Object.entries(obj));  
console.log(JSON.stringify(map));  

输出是

[["id",1],["name","cloudhadoop"]]  

使用Jquery的每个函数

jquery中的each函数是对一个对象的值进行迭代,它接受一个对象,一个回调函数将为一个对象的每个条目执行。

  
let objData = { "id": 1, "name": "cloudhadoop" }  
const mymap = new Map();  
$.each( objData, function( key, value ) {  
mymap[key] = value;  
});  
console.log(JSON.stringify(mymap));  

带有toPairs函数的lodash

toPairs函数接受一个字符串属性的对象,返回map或set,toPairs方法的输出被传递,Map构造函数被传递。

  
  
const _ = require('lodash');  
let objData = { "id": 1, "name": "cloudhadoop" }  
const newmap = new Map(_.toPairs(objData));  
console.log(JSON.stringify(newmap));  

如何在javascript中把一个对象数组转换为Map?

一个数组对象用方括号括起来 -[ 数组对象]
我们有很多方法可以将数组对象转换为地图。

ES6的地图构造器有数组地图方法

使用数组map()方法对数组对象进行迭代,并进行回调。

var arrayData = [  
    { id: '1', name: 'kiran' },  
    { id: '2', name: 'Franc' }  
];  
var mymap = new Map(arrayData.map(entry => [entry.id, entry.name]));  
console.log(JSON.stringify(mymap));  

输出是

[["1","kiran"],["2","Franc"]]  

使用lodash的fromPairs函数

lodash的fromPairs函数接受map,这是一个数组map条目的结果。

var arrayData = [  
    { id: '1', name: 'kiran' },  
    { id: '2', name: 'Franc' }  
];  
const map = _.fromPairs(arrayData.map(object => [object.id, object.name]));  
console.log(JSON.stringify(mymap));  

结语

总而言之,我们已经学会了在javascript中把对象转换成地图的不同方法。