首页 > 解决方案 > 展平数组,但不包括根元素

问题描述

我有一个嵌套数组,只想展平/连接从根目录下开始的项目,不包括根级别。

使用 Array.flat() 您可以指定深度,但不能指定起始级别。有没有聪明的方法来完成我想要的?

let measures = Object
    .entries(schemaMetadataCache)
    .map(([k, v]) => [k, v.filter(foo => foo.ColumnType === 2)]);

console.log(measures); // non flattened
console.log(measures.flat(2)); // flattened, but need to exclude root level

展平前的数组原始数组

展平后,我只想要 12 个项目。

压扁后

标签: javascriptarrays

解决方案


let measures = Object
    .entries(schemaMetadataCache)
    .map(([k, v]) => [k, v.filter(foo => foo.ColumnType === 2)]);

考虑到上面的代码片段和预期的结果,为什么不返回扁平值呢?

let measures = Object
    .entries(schemaMetadataCache)
    .flatMap(([k, v]) => v.filter(foo => foo.ColumnType === 2));

推荐阅读