Javascript 展平数组,但不包括根元素

Javascript 展平数组,但不包括根元素,javascript,arrays,Javascript,Arrays,我有一个嵌套数组,只想展平/连接根下开始的项目,不包括根级别 使用Array.flat()可以指定深度,但不能指定起始标高。有没有一个聪明的方法来实现我想要的 let measures = Object .entries(schemaMetadataCache) .map(([k, v]) => [k, v.filter(foo => foo.ColumnType === 2)]); console.log(measures); // non flattened c

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

使用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件物品


似乎您希望根数组被展平,但最终结果中不包括根元素(非数组)

您可以使用最小/最大深度支持创建自己的
Array.flat()
实现,但对于您的特定情况,这可能会有点过头

查看下面的代码片段以获得可能的解决方案

const输入=[
“valueA”,
“valueB”,
[{name:'Object1',value:'1'},{name:'Object2',value:'2'}],
[{name:'Object3',value:'3'}],
"valueC",,
0,
是的,
[{name:'Object4',value:'4'},{name:'Object5',value:'5'}]
];
常量输出=input.filter((项)=>Array.isArray(项)).flat();
控制台日志(输出)
考虑到上面的代码片段和预期结果,为什么不返回展平的值呢

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

为什么不循环主数组并合并数组中每个元素的第一个索引?正如我所看到的,它是2d数组。你能提供输入数据和预期输出吗?这样其他成员可以为你提供工作示例。对于那些评论。输入数据如图所示,输出数据如我清楚解释的那样,是一个包含12项的串联数组。我确实可以很容易地做一个循环,但我假设有一个我可能忽略了的一行。flatMap只会展平完整的结果,你仍然会得到一个包含键的数组。然而你的建议帮助我解决了这个问题。我在原来的帖子中添加了新代码。谢谢。@MichaSchopman我不知道你的意思,我不会退回建议解决方案中的钥匙。你说得对,Ramesh。我忽略了你也删除了关键任务。谢谢,并把赏金分配给你。
let measures = Object
    .entries(schemaMetadataCache)
    .flatMap(([k, v]) => v.filter(foo => foo.ColumnType === 2));