Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 点符号对象到多维对象_Javascript - Fatal编程技术网

Javascript 点符号对象到多维对象

Javascript 点符号对象到多维对象,javascript,Javascript,使用以下数据格式: const flat = { '100': 'L1', '100.200': 'L1, J2', '100.200.300': 'L1, J2, A3', '100.200.400': 'L1, J2, A4', '100.300': 'L1, J3', '100.400.500': 'L1, J4, A5' }; 我想把它改成这样: { "100":{ "name&quo

使用以下数据格式:

const flat = {
    '100': 'L1',
    '100.200': 'L1, J2',
    '100.200.300': 'L1, J2, A3',
    '100.200.400': 'L1, J2, A4',
    '100.300': 'L1, J3',
    '100.400.500': 'L1, J4, A5'
};
我想把它改成这样:

{
    "100":{
        "name":"L1",
        "children":{
            "200":{
                "name":"L1, J2",
                "children":{
                    "300":{
                        "name":"L1, J2, A3"
                    },
                    "400":{
                        "name":"L1, J2, A4"
                    }
                }
            },
            "300":{
                "name":"L1, J3"
            },
            "400":{
                "name":null,
                "children":{
                    "500":{
                        "name":"L1, J4, A5"
                    }
                }
            }
        }
    }
}

任何帮助都将不胜感激。我一直在尝试从中实现一些东西,尽管它们只涉及我的许多用例,很难理解。

下面是一个使用对所提供对象的调用的示例

功能扩展(obj){
返回对象
.条目(obj)
.reduce((a[propString,name])=>{
常数
propArr=propString.split('.'),
innerProp=propArr.pop(),
innerObj=propArr.reduce((_a,prop)=>(
_a[prop]??={},_a[prop]),a);
innerObj[innerProp]={name};
返回a;
}, {})
}
常量平面={'100':'L1','100.200':'L1,J2','100.200.300':'L1,J2,A3','100.200.400':'L1,J2,A4','100.300':'L1,J3','100.400.500':'L1,J4,A5';
console.log(展开(展开(展开))

.as-console-wrapper{max-height:100%!important;top:0;}
Object.keys
从平面对象获取所有键,
Array.map
使用
String.split
获取部分对象键和
数组。reduce
返回您想要的对象“我一直在尝试实现一些事情”-请将您的问题包括在这些尝试中,否则我们无法告诉您出了什么问题,只能向您指出有关该主题的现有问题。谢谢!这完全有道理。当我放入一个超大数据集时,扩展函数失败了,但第二个数据集工作得很好。