使用 javascript ES6,我试图通过一种简单的算法来转换包含字符串的数组,但没有成功,没有大小限制,因此我需要一个以数组项作为标签的对象子数组中的每个项目,取决于他的位置,有点难以解释,
这是我“之前”得到的和“之后”我想要的。
before = ["a","b","c","d"]
after = {
name: "a"
children: [
{
name: "b",
children: [
{
name: "c",
children: [
name: "d"
]
}
]
}
]
}
我完全被封锁了,谢谢你的帮助
最佳答案
您可以使用 Array#reduceRight从数组创建结构。
reduceRight()
从末尾取一个元素,用对象包裹它,并将之前的结果添加到 children 数组中。使用 Object#assign 有条件地分配 child ,因为最后一个对象没有 child 。
const before = ["a","b","c","d"];
const after = before.reduceRight((r, name) =>
Object.assign({ name }, r !== null ? { children: [r] } : {}),
null);
console.log(after);
关于javascript - 将一个简单的数组转换为复杂的对象,并将项目作为子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47912940/