You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何内联合并两个对象数组中relevantRegisters.R的嵌套对象数组?

如何将两个数组中嵌套的R数组合并为一维数组

你现在的代码之所以得到二维数组[Array(3), Array(3)],是因为map会把每个pallet/gripper转换成对应的R数组,展开后自然是嵌套结构。下面给你两种简单的解决方法:

方法1:用flatMap一步到位(推荐)

flatMap相当于map + flat(1)的组合,能在映射每个元素的同时自动扁平化一层嵌套,完美适配你的场景:

const extractedR = [
  ...pallets.flatMap(pallet => pallet.relevantRegisters.R),
  ...grippers.flatMap(gripper => gripper.relevantRegisters.R)
];

方法2:先映射再手动扁平化

如果你更习惯分步操作,也可以先保留你原来的map逻辑,最后用flat()把二维数组拍平成一维:

const extractedR = [
  ...pallets.map(pallet => pallet.relevantRegisters.R),
  ...grippers.map(gripper => gripper.relevantRegisters.R)
].flat();

flat()默认会处理一层嵌套,刚好能把你得到的[Array(3), Array(3)]转换成一维数组。

举个实际的例子验证下效果:
假设你的原始数组结构是这样的:

const pallets = [
  { relevantRegisters: { R: [{ID: 1}, {ID: 2}, {ID: 3}] } },
  { relevantRegisters: { R: [{ID: 4}, {ID: 5}, {ID: 6}] } }
];
const grippers = [
  { relevantRegisters: { R: [{ID: 7}, {ID: 8}, {ID: 9}] } }
];

用上面任意一种方法,最终得到的extractedR都会是:

[{ID:1}, {ID:2}, {ID:3}, {ID:4}, {ID:5}, {ID:6}, {ID:7}, {ID:8}, {ID:9}]

完全符合你想要的一维对象数组需求。

内容的提问来源于stack exchange,提问作者Darkbound

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:03:13