繁体   English   中英

如何优雅地将对象剥离到特定字段?

[英]How to strip object down to specific fields elegantly?

我想删除所有多余的字段,但我从对象中指定的字段。 我怎么能优雅地做到这一点。 例如:我想要这样的东西:

let obj = {email: 'test', id: 'someid', password: 'pas'}

stripObject(obj, 'email', 'id')

//now obj contains only email & id

您可以使用“Array.map”和“Object.assign”来完成这个任务,如下所示

 let obj = {email: 'test', id: 'someid', password: 'pas'} function stripObject(obj , ...args) { return Object.assign(...args.map(d => ({ [d]: obj[d] }))) } console.log(stripObject(obj, 'email', 'id'))

这有效:

let obj = {email: 'test', id: 'someid', password: 'pas'}

function stripObject(obj, ...args) {
  let newObj = {};
  args.forEach(arg => {
    newObj[arg] = obj[arg];
  });
  return newObj;
}

let stripped = stripObject(obj, 'email', 'id');
console.log(stripped);

JSFiddle: https ://jsfiddle.net/gjm0L2vw/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM