如何在JavaScript解构字典时为变量应用函数?
当然有办法用单行代码实现解构时直接对值应用函数,这里给你几种实用方案:
针对固定属性的单行处理
借助立即执行函数,先解构原对象、处理值后返回新对象,再完成最终解构:
const { var1, var2 } = (({ var1, var2 }) => ({ var1: doubleNo(var1), var2: doubleNo(var2) }))(oldDict);
执行这一行后,var1的值就是4,var2的值就是6,一步到位。
批量处理多属性的单行写法
如果你的对象属性较多,不想逐个手动处理,可以结合Object.entries和Object.fromEntries批量转换所有属性值,再解构:
const { var1, var2 } = Object.fromEntries(Object.entries(oldDict).map(([key, val]) => [key, doubleNo(val)]));
这种方式会自动遍历原对象的所有属性,统一应用doubleNo函数,之后你按需解构需要的属性即可。
另一种简洁的解构赋值写法
还可以利用解构赋值的语法,直接在解构时对属性值做转换:
const { var1: var1 = doubleNo(oldDict.var1), var2: var2 = doubleNo(oldDict.var2) } = oldDict;
不过这种写法需要重复引用原对象,属性多的时候会比较繁琐,适合属性少的场景。
内容的提问来源于stack exchange,提问作者Phoenix
相关产品推荐
相关产品推荐

