在这篇博文中,我们将学习如何在javascript中把一个对象转换为地图的例子。
如何在javascript中把普通对象转换为地图
在开发过程中,每个开发者都会遇到这样的问题:数据的对象想要转换为地图。
对象和地图是java脚本中不同的数据类型。
对象是一组项目,每一个项目都包含了用逗号分隔的键和值,用括号括起来。
Map是一个独立的数据架构,用于使用散列法存储键和值对。
这个例子显示了我们如何在java脚本中创建一个对象
在java脚本中声明和创建对象
let objData={"id":1,"name":"cloudhadoop"}
Map是ES6中引入的独立的数据结构,具有键和值对。Map可以用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的地图构造函数中使用object. entries
Es6地图有一个构造函数,接受object. 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中把对象数组转换为地图
数组对象用方括号括起来 -[ 数组对象]
我们有很多方法可以将数组对象转换为地图。
ES6地图构造器使用数组地图方法:
使用数组map()方法对数组对象进行回调,map方法对每个对象进行调用,最后返回新的map对象,该对象被传递给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函数接受数组地图条目的结果。
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中把对象转换成地图的不同方法。