假设我有一个对象:

elmo = { 
  color: 'red',
  annoying: true,
  height: 'unknown',
  meta: { one: '1', two: '2'}
};

我想创建一个具有其属性子集的新对象.

 // pseudo code
 subset = elmo.slice('color', 'height')

 //=> { color: 'red', height: 'unknown' }

我怎样才能做到这一点呢?

推荐答案

使用对象析构和属性速记

const object = { a: 5, b: 6, c: 7  };
const picked = (({ a, c }) => ({ a, c }))(object);

console.log(picked); // { a: 5, c: 7 }


来自菲利普·凯维奇:

这实际上只是一个即时调用的匿名函数.所有这些都可以在MDN的Destructuring Assignment页上找到.这是一个扩展的表单

let unwrap = ({a, c}) => ({a, c});

let unwrap2 = function({a, c}) { return { a, c }; };

let picked = unwrap({ a: 5, b: 6, c: 7 });

let picked2 = unwrap2({a: 5, b: 6, c: 7})

console.log(picked)
console.log(picked2)

Javascript相关问答推荐

更新Reduxstore 中的状态变量,导致整个应用程序出现不必要的重新渲染

D3多线图显示1线而不是3线

是什么原因导致此Angular 16应用程序中类型错误时属性结果不存在?

在贝塞尔曲线的直线上找不到交叉点:(使用@Pomax的bezier.js)

jQuery提交按钮重新加载页面,即使在WordPress中使用preventDefault()

如何在Angular中插入动态组件

Next.js(react)使用moment或不使用日期和时间格式

自定义高图中的x轴标签序列

正则表达式,允许我匹配除已定义的子字符串之外的所有内容

Use Location位置成员在HashRouter内为空

使用带有HostBinding的Angular 信号来更新样式?

当我try 将值更改为True时,按钮不会锁定

一个实体一刀VS每个实体多刀S

如何确保预订系统跨不同时区的日期时间处理一致?

Node.js API-queryAll()中的MarkLogic数据移动

如何使用[ModelJSON,ArrayBuffer]调用tf.loadGraphModelSync

我为什么要使用回调而不是等待?

TypeORM QueryBuilder限制联接到一条记录

如何调整下拉内容,使其不与其他元素重叠?

material UI自动完成全宽