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
和构造函数
),或者使用一个库来为您获取它们。哇,这个解决方案是如此优雅和美丽。是时候永远和你说再见了。我现在要学习更多关于函数式编程的知识。我正在研究一个答案,但没有那么好。我把尼娜的答案粘贴到沙箱里