javascript - ECMAScript 对象扩展/休息 - 一次分配给多个属性
问题描述
新的 object rest/spread 语法有一些令人惊讶的好应用,比如从 object 中省略一个字段。
是否有(建议的)方法也可以分配给对象的多个属性,来自具有相同名称的变量的值?换句话说,更短的说法是:
o.foo = foo;
o.bar = bar;
o.baz = baz;
注意:在不丢失 的现有属性的情况下o
,只添加它们。
解决方案
使用Object.assign
:
const o = { initial: 'initial' };
const foo = 'foo';
const bar = 'bar';
const baz = 'baz';
Object.assign(o, { foo, bar, baz });
console.log(o);
请注意,这两个简写属性名称Object.assign
都是在 ES6 中引入的——它不需要非常最新的浏览器/环境。
重新分配对对象的引用的类似方法是通过扩展o
和list来初始化另一个对象foo, bar, baz
:
let o = { initial: 'initial' };
const foo = 'foo';
const bar = 'bar';
const baz = 'baz';
o = { ...o, foo, bar, baz };
console.log(o);
推荐阅读
- json - 在 json 中标准化传入的 RESTful API 接收时间和时间戳
- excel - 向合并的单元格添加超扭结
- mysql - 我们可以在没有 Eclipse IDE 的情况下加密 BIRT 连接配置文件吗?
- swift - 从 URL 加载图像正在显示,但我无法检索它
- python - 具有多类召回自定义指标的 Tensorflow 2 ModelCheckpoint 回调
- neo4j - Neo4J 在非查询事务中取出长寿命锁
- csv - 使用数据格式为csv的inputs.tail时出现Telegraf不支持的类型问题
- python - Seaborn catplot (kind='count') 将条形图更改为饼图
- bash - Loop with 2 successive same exit code
- jquery - How can I integrate formBuilder jquery plugin in my MVC project?