如何使用JavaScript对象解构仅提取指定字段?
解决方法:用对象解构+字面量简写实现简洁提取
嘿,这事儿超简单!你想要的正是JavaScript里对象解构赋值结合对象字面量简写的写法,完美符合你的所有要求——只写一次myObject,每个键名仅出现一次,不需要自定义函数或多余的临时变量。
最直观的写法(分两行)
这种写法清晰易懂,完全满足需求:
const { id, object, amount, arrival_date, created } = myObject; arr.push({ id, object, amount, arrival_date, created });
原理很简单:
- 第一行通过对象解构赋值,直接从
myObject里提取出你需要的5个属性; - 第二行利用对象字面量简写(当属性名和变量名一致时,只需写名称)创建仅包含指定字段的新对象,再push到数组中。
一行紧凑写法(用立即执行函数)
如果想要把逻辑压缩到一行里,也可以用匿名立即执行函数(IIFE),虽然用了匿名函数,但并没有定义可复用的自定义函数,完全符合你的要求:
arr.push((({ id, object, amount, arrival_date, created }) => ({ id, object, amount, arrival_date, created }))(myObject));
这个写法的逻辑是:
- 先定义一个匿名函数,它接受解构后的5个属性作为参数,返回一个包含这些属性的新对象;
- 立即调用这个函数并传入
myObject,最后把返回的新对象push到数组里。
效果验证
不管用哪种写法,最终push到arr里的都是这样的对象:
{ id: 'po_495743057439095', object: 'payout', amount: 18560, arrival_date: 1576195200, created: 1575774863 }
内容的提问来源于stack exchange,提问作者Vincent
相关产品推荐
相关产品推荐

