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

JavaScript从对象选取属性时如何避免重复书写属性名?

实现方案

方案1:ES6+ 解构+属性简写(最推荐)

这是JavaScript标准支持的原生写法,可读性高,也是工业界的通用实践:

// 先从原对象中解构出需要的属性
const { depth } = object_with_many_attributes;
// 利用对象字面量属性简写构造新对象
const a = { depth };

如果需要同时提取多个属性,优势会更明显,每个属性仅需书写一次:

const { depth, width, height, color } = object_with_many_attributes;
const a = { depth, width, height, color };

方案2:单行立即执行函数实现

如果希望逻辑合并为一行,可以用匿名立即执行函数封装解构逻辑:

const a = (({ depth }) => ({ depth }))(object_with_many_attributes);

该写法同样符合ES标准,但可读性弱于方案1,不建议在复杂逻辑中使用。

方案3:ES5 兼容方案(自定义工具函数)

如果需要兼容不支持ES6语法的旧运行环境,可以自行封装pick工具函数实现需求:

function pick(sourceObj, keyList) {
  var result = {};
  for (var i = 0; i < keyList.length; i++) {
    var key = keyList[i];
    result[key] = sourceObj[key];
  }
  return result;
}

// 调用时仅需书写一次属性名
var a = pick(object_with_many_attributes, ['depth']);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:15:03