递归地将所有数组转换为多维Javascript对象中的对象

递归地将所有数组转换为多维Javascript对象中的对象,javascript,arrays,json,Javascript,Arrays,Json,考虑以下对象: const data = { foo: 'bar', items: [ { id: 1, items: [ { id: 50, content: 'test' } ] }, { i

考虑以下对象:

const data = {
    foo: 'bar',
    items: [
        {
            id: 1,
            items: [
                {
                    id: 50,
                    content: 'test'
                }
            ]
        },
        {
            id: 2,
            items: [
                {
                    id: 70,
                    content: 'test'
                },
                {
                    id: 85,
                    content: 'test'
                }
            ]
        }
    ]
}
我目前使用的插件只支持数组中的字符串值,因此我需要遍历数据并将所有数组转换为对象

我希望我能以某种方式利用它,但我一直没能让它发挥作用

这就是我所尝试的:

const json = '{"foo":"bar","items":[{"id":1,"items":[{"id":50,"content":"test"}]},{"id":2,"items":[{"id":70,"content":"test"},{"id":85,"content":"test"}]}]}';

console.log(JSON.parse(json, (key, value) =>
  typeof value === 'array'
    ? Object.assign({}, value)
    : value
));
有人能提出一种实现这一目标的方法吗?我希望我可以避免递归迭代对象,但我不确定这是否可行

更新 预期输出应如下所示:

const data = {
    foo: 'bar',
    items: {
        0: {
            id: 1,
            items: {
                0: {
                    id: 50,
                    content: 'test'
                }
            }
        },
        1: {
            id: 2,
            items: {
                0: {
                    id: 70,
                    content: 'test'
                },
                1: {
                    id: 85,
                    content: 'test'
                }
            }
        }
    }
}

注意所有数组现在都是对象…

您可以使用检查数组

const json='{“foo”:“bar”,“items”:[{“id”:1,“items”:[{“id”:50,“content”:“test”}],{“id”:2,“items”:[{“id”:70,“content”:“test”},{“id”:85,“content”:“test”}];
console.log(JSON.parse(JSON,(key,value)=>Array.isArray(value)
?对象。赋值({},值)
:价值
));

。作为控制台包装{max height:100%!important;top:0;}
您能否举例说明所需的输出是什么?您的预期输出是什么?“将所有数组转换为对象”这会产生什么?像这样的数组?还有别的吗?当然,给我2秒钟。你不能有没有键的嵌套对象。这似乎正是我要找的!非常感谢你!