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

如何优雅转换对象内嵌的对象数组为属性值数组?

更简洁的实现方案

方案一:解构时直接处理

可以在复制对象的同时,直接对目标数组做转换,省去多余的中间变量:

const processedObj = {
  ...obj1,
  operationIds: obj1.operationIds.map(item => item.id),
  ratingIds: obj1.ratingIds.map(item => item.id),
  timestamp: "AAAAAAAGJ6c=",
  estimatedUtilReconciliationApplies: true
};

方案二:提取复用函数(适合多数组转换场景)

如果后续还有类似的对象数组需要提取id,可以封装通用函数避免重复逻辑:

const extractIds = (arr: Array<{ id: number }>) => arr.map(item => item.id);

const processedObj = {
  ...obj1,
  operationIds: extractIds(obj1.operationIds),
  ratingIds: extractIds(obj1.ratingIds),
  timestamp: "AAAAAAAGJ6c=",
  estimatedUtilReconciliationApplies: true
};

补充说明

你当前代码里将转换后的数组赋值给operatingEnvironmentIds和thrustRatingIds,但预期结果是保留operationIds和ratingIds字段,以上方案按预期结果实现。如果确实需要替换字段名,只需修改对应键名即可,比如:

const processedObj = {
  ...obj1,
  operatingEnvironmentIds: extractIds(obj1.operationIds),
  thrustRatingIds: extractIds(obj1.ratingIds),
  // 若需移除原字段可添加这两行
  operationIds: undefined,
  ratingIds: undefined,
  timestamp: "AAAAAAAGJ6c=",
  estimatedUtilReconciliationApplies: true
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:10:34