转换地图在JavaScript中JSON对象 [英] Convert Map to JSON object in Javascript
本文介绍了转换地图在JavaScript中JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以Ive得到了下面的JavaScript,其中包含一个键/值对映射到一个目录嵌套路径。
函数createPaths(别名,作为propName,路径){
aliases.set(作为propName,路径);
}地图=新地图();createPaths(地图,'paths.aliases.server.entry','的src /测试');
createPaths(地图,'paths.aliases.dist.entry','地区/测试');
现在我想要做的就是从地图的关键创建一个JSON对象。
它必须是,
路径:{
别名:{
服务器:{
项:'SRC /测试
},
距:{
条目:'DIST /测试
}
}
}
不知道如果有一个出一箱的方式来做到这一点。任何帮助是AP preciated。
解决方案
您可以遍历所有的地图,并通过按键和分配值
\r
\r\r
\r 函数createPaths(别名,作为propName,路径){\r
aliases.set(作为propName,路径);\r
}\r
\r
VAR地图=新地图()\r
对象= {};\r
\r
createPaths(地图,'paths.aliases.server.entry','的src /测试');\r
createPaths(地图,'paths.aliases.dist.entry','地区/测试');\r
\r
map.forEach((值,键)=> {\r
变种键= key.split('。'),\r
最后= keys.pop();\r
keys.reduce((R,A)=> R [A] = R [A] || {},对象)[最后] =价值;\r
});\r
\r
的console.log(对象);
\r
So Ive got the following javascript which contains a key/value pair to map a nested path to a directory.
function createPaths(aliases, propName, path) {
aliases.set(propName, path);
}
map = new Map();
createPaths(map, 'paths.aliases.server.entry', 'src/test');
createPaths(map, 'paths.aliases.dist.entry', 'dist/test');
Now what I want to do is create a JSON object from the key in the map.
It has to be,
paths: {
aliases: {
server: {
entry: 'src/test'
},
dist: {
entry: 'dist/test'
}
}
}
Not sure if there is an out of a box way to do this. Any help is appreciated.
解决方案
You could loop over the map and over the keys and assign the value
function createPaths(aliases, propName, path) {
aliases.set(propName, path);
}
var map = new Map(),
object = {};
createPaths(map, 'paths.aliases.server.entry', 'src/test');
createPaths(map, 'paths.aliases.dist.entry', 'dist/test');
map.forEach((value, key) => {
var keys = key.split('.'),
last = keys.pop();
keys.reduce((r, a) => r[a] = r[a] || {}, object)[last] = value;
});
console.log(object);
这篇关于转换地图在JavaScript中JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文