Javascript 如何将此数组转换为对象

Javascript 如何将此数组转换为对象,javascript,arrays,object,type-conversion,Javascript,Arrays,Object,Type Conversion,我似乎找不到答案,如何将数组中的数组更改为数组中的对象 javaScript中的这个问题。如何转换?如何转换 我有这个数组 [ "or", [ "or", { "status": 1 }, { "verified": 1 } ], [ "and&qu

我似乎找不到答案,如何将数组中的数组更改为数组中的对象

javaScript中的这个问题。如何转换?如何转换

我有这个数组

   [
    "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”时递归。