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

如何用一行JS代码从对象中提取指定属性生成新对象

实现方案

你可以直接用ES2019及以上标准支持的Object.fromEntries方法,一行实现需求:

const filtered = Object.fromEntries(fields.map(field => [field, obj[field]]))

逻辑说明

  • 先遍历fields数组,把每个指定字段转为[字段名, 原对象对应属性值]格式的键值对数组
  • 再通过Object.fromEntries直接把键值对数组转为新对象,刚好得到仅包含指定属性的结果。

你之前写法的问题

你给出的Object.keys(fields).map(e => fields[e])逻辑只做了一件事:遍历数组fields的索引,重新生成了一份和fields完全一致的新数组,全程没有关联到要提取属性的原对象obj,自然无法实现提取属性的效果。

健壮性兼容版本

如果fields中可能存在原对象没有的属性,且你不希望这些属性出现在最终结果中,可以加一层过滤逻辑:

const filtered = Object.fromEntries(
  fields
    .filter(field => obj.hasOwnProperty(field))
    .map(field => [field, obj[field]])
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:18:00