如何简化这段JavaScript代码?实现从数组解构生成命名对象属性
简化数组转命名对象的JavaScript代码
你可以通过数组解构配合对象字面量简写来简化这段代码,完全不需要临时变量result:
最清晰的写法
const [a, b] = this.getSomething(x, y, z); return { a, b };
这里的逻辑是:
- 用
[a, b]解构getSomething返回的数组,把数组第一个元素赋值给变量a,第二个赋值给b - 对象字面量
{a, b}是ES6的简写语法,等价于{a: a, b: b},会自动创建键名和变量名一致的对象属性
更紧凑的单行写法
如果追求代码行数更少,也可以写成一行(可读性略降,根据团队规范或场景选择):
return (([a, b]) => ({a, b}))(this.getSomething(x, y, z));
或者利用连续赋值(同样建议在团队约定允许的情况下使用):
return {a, b} = [a, b] = this.getSomething(x, y, z);
补充说明
如果getSomething返回的数组长度大于2,你可以直接忽略不需要的元素,比如const [a, b] = ...只会提取前两个元素;如果需要保留剩余元素,可以用扩展运算符:const [a, b, ...rest] = ...,rest会包含数组从第三个元素开始的所有值。
内容的提问来源于stack exchange,提问作者msteel9999
相关产品推荐
相关产品推荐

