如何删除多个空数组包装器并仅保留对象

时间:2019-05-23 10:34:55

标签: javascript arrays typescript multidimensional-array

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

从此到

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

对此

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

如果该对象为数组,则应该对其进行维护。

1 个答案:

答案 0 :(得分: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));