【问题标题】:How to remove multiple empty array wrappers and just keep object如何删除多个空数组包装器并只保留对象
【发布时间】:2019-10-09 21:59:36
【问题描述】:

如何删除所有空数组包装?

从这里到

[[[{"type":"banana"},{"type":"orange"}]]]

到这里

{"type":"banana"},{"type":"orange"}

如果对象作为一个数组,它应该被维护。

【问题讨论】:

    标签: javascript arrays typescript multidimensional-array


    【解决方案1】:

    使用recursion-

    const input = [[[{"type":"banana"},{"type":"orange"}]]];
    
    function flattenDeep(input) {
        return input.reduce((accu, val) => Array.isArray(val) ? accu.concat(flattenDeep(val)):accu.concat(val), []);
    }
    
    console.log(flattenDeep(input));

    如果你知道嵌套的深度,你也可以使用内置函数flat

    const input = [[[{"type":"banana"},{"type":"orange"}]]];
    
    console.log(input.flat(2));

    【讨论】:

    • 但是最终的输出还在数组中。
    • @user007 - 如果你想在一个对象中。您可以将数组内容分布在一个对象中,例如 - console.log({...flattenDeep(input)});
    猜你喜欢
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 2023-01-11
    • 2012-02-26
    • 2020-01-28
    相关资源
    最近更新 更多