如何在javascript中把字符串转换为变量名,并举例说明

97 阅读3分钟

在这篇博文中,我们将学习如何在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中把对象转换成地图的不同方法。