递归循环数组以创建对象
我正在努力解决这个算法。我知道解决方案将是递归的,但我对如何解决这个问题感到困惑。请随意尝试一下。谢谢
问题:['a','b','c',['d','e','f',['g','h']],[i, j, k]]
Output:
{
a: true,
b: true,
c: true,
d: {
e: true,
f: true,
g: {
h: true
}
},
i: {
j: true,
k: true
}
}
I'm seriously struggling to solve this algorithm. I know the solution will be recursive, but i'm stumped on how to solve this problem. Feel free to take a crack at it. Thank you
Problem: ['a','b','c',['d','e','f',['g','h']], [i, j, k]]
Output:
{
a: true,
b: true,
c: true,
d: {
e: true,
f: true,
g: {
h: true
}
},
i: {
j: true,
k: true
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
Object.fromEntries
并为其提供键/值对。当“key”恰好是一个数组时,使用第一个元素作为key,对数组的其余部分进行递归以获得value部分:You could use
Object.fromEntries
and feed it key/value pairs. When the "key" happens to be an array, use the first element as key, and perform recursion on the remainder of the array to get the value part:使用
Array#reduce
:Using
Array#reduce
:在 Ruby 中(想想伪代码)。
假设(与相关示例略有不同)
然后
In Ruby (think pseudo-code).
Suppose (slightly changed from example in question)
Then