Javascript 如何将此数组转换为对象
我似乎找不到答案,如何将数组中的数组更改为数组中的对象 javaScript中的这个问题。如何转换?如何转换 我有这个数组Javascript 如何将此数组转换为对象,javascript,arrays,object,type-conversion,Javascript,Arrays,Object,Type Conversion,我似乎找不到答案,如何将数组中的数组更改为数组中的对象 javaScript中的这个问题。如何转换?如何转换 我有这个数组 [ "or", [ "or", { "status": 1 }, { "verified": 1 } ], [ "and&qu
[
"or",
[
"or",
{
"status": 1
},
{
"verified": 1
}
],
[
"and",
{
"social_account": 1
},
{
"enable_social": 1
}
]
]
我想要这个对象:
{
"or": [
{
"or": [
{
"status": 1
},
{
"verified": 1
}
]
},
{
"and": [
{
"social_account": 1
},
{
"enable_social": 1
}
]
}
]
}
可以使用递归函数。基本情况是当参数不是数组时。在另一种情况下,提取第一个数组值作为对象的键,并通过递归函数映射数组的其余部分:
const convert=data=>Array.isArray(数据)&&&[“或”,“和”]。包括(数据[0])
? {[data[0]]:data.slice(1.map(convert)}
:数据;
//演示:
让数据=[“或”,
[“或”,{“状态”:1},{“已验证”:1}],
[“和”,{“社会账户”:1},{“使能社会账户”:1}]
];
console.log(转换(数据))代码>完全没有尝试?很多但没有结果。共享它们,然后请尝试此json数据。我们需要递归函数。“[”或“,[”或“,[”或“,{”状态:1},{”已验证:1}],{”社会帐户:1},{”启用社会帐户:1}],[{”社会帐户:1},{”启用社会帐户:1}]],最后一个子数组没有“或”,或“和”。。。这是有意的吗?无论如何,我在代码中添加了一个检查,它仅在第一个数组元素为“or”或“and”时递归。