Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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_Node.js_Reactjs - Fatal编程技术网

Javascript 如何将数组转换为特定格式的对象?

Javascript 如何将数组转换为特定格式的对象?,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,虽然这是一个常见的问题,但我找不到任何线索来达到预期的效果。这就是问题所在。我有以下数组: [ [ 'a' ] [ 'a', 'b' ] [ 'a', 'c' ] [ 'a', 'c', 'd' ] [ 'a', 'c', 'd', 'e' ] ] 我想要的最终结果是这样一个物体: { a: { b: {}, c: { d: { e: {} } } } } 我不知道哪种方法更适合获得这个结果以及如何实现它。您需要一个双reduc

虽然这是一个常见的问题,但我找不到任何线索来达到预期的效果。这就是问题所在。我有以下数组:

[
    [ 'a' ]
    [ 'a', 'b' ]
    [ 'a', 'c' ]
    [ 'a', 'c', 'd' ]
    [ 'a', 'c', 'd', 'e' ]
]
我想要的最终结果是这样一个物体:

{
  a: {
    b: {},
    c: { d: { e: {} } }
  }
}

我不知道哪种方法更适合获得这个结果以及如何实现它。

您需要一个双reduce,一个用于外部数组,一个用于键和嵌套对象

var数据=['a']、['a','b']、['a','c']、['a','c','d']、['a','c','d','e'],
结果=数据。减少((r,键)=>{
reduce((o,k)=>o[k]=o[k]|{},r);
返回r;
}, {});

控制台日志(结果)您需要一个双reduce,一个用于外部数组,一个用于键和嵌套对象

var数据=['a']、['a','b']、['a','c']、['a','c','d']、['a','c','d','e'],
结果=数据。减少((r,键)=>{
reduce((o,k)=>o[k]=o[k]|{},r);
返回r;
}, {});

控制台日志(结果)请添加您的try.look off to Yes,基本上您希望迭代数组中的每个元素并进行自定义聚合,这是reduce的完美选择。或者,您可以使用for循环在集合上进行迭代。请添加try。请注意“是”,基本上您希望迭代数组中的每个元素并进行自定义聚合,这是reduce的完美选择。或者,您可以使用for循环在集合上进行迭代。请记住,如果数据源不受信任,则很容易受到攻击。请考虑<代码> [ 'OrthPosith',ToSc',123 ] < /Cord>作为输入。任何简单的方法都存在这个问题,除非采取特殊的对策(跳过
\uuuu proto\uuuu
构造函数
),或者使用一个库来为您获取它们。哇,这个解决方案是如此优雅和美丽。是时候永远和你说再见了。我现在要学习更多关于函数式编程的知识。我正在研究一个答案,但没有那么好。我将Nina的答案粘贴到了一个沙箱中,请记住,如果数据源不受信任,那么它很容易受到攻击。请考虑<代码> [ 'OrthPosith',ToSc',123 ] < /Cord>作为输入。任何简单的方法都存在这个问题,除非采取特殊的对策(跳过
\uuuu proto\uuuu
构造函数
),或者使用一个库来为您获取它们。哇,这个解决方案是如此优雅和美丽。是时候永远和你说再见了。我现在要学习更多关于函数式编程的知识。我正在研究一个答案,但没有那么好。我把尼娜的答案粘贴到沙箱里