转换地图在JavaScript中JSON对象 [英] Convert Map to JSON object in Javascript

查看:93
本文介绍了转换地图在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

函数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

\r
\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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆