如何使用Lodash将JavaScript对象的每个值乘以100
用Lodash实现对象属性值批量乘100的方法
嘿,这事儿用Lodash其实超简单,我给你捋两种实用的方法,都能完美满足你的需求:
方法一:用_.mapValues(最推荐,简洁直接)
_.mapValues就是专门为对象的属性值批量转换而生的,它会遍历原对象的所有属性,对每个值执行你定义的转换逻辑,最后返回一个结构完全一致的新对象,原对象不会被修改。
代码示例:
const _ = require('lodash'); // 先确保已引入Lodash // 你的原始对象 const originalObj = { home: 78, draw: 81, away: 36, u0_5: 16, o0_5: 26, u1_5: 10, o1_5: 68, u2_5: 48, o2_5: 50, u3_5: 29, o3_5: 31, u4_5: 50, o4_5: 5, u5_5: 68, o5_5: 56 }; // 生成新对象,每个属性值乘100 const newObj = _.mapValues(originalObj, value => value * 100); console.log(newObj); // 输出结果:{ home: 7800, draw: 8100, away: 3600, ... }
方法二:用_.transform(备选,更灵活)
如果你需要更自定义的遍历逻辑,_.transform也是个不错的选择,它可以遍历对象并逐步构建新对象:
const newObj = _.transform(originalObj, (result, value, key) => { // 把处理后的键值对添加到结果对象中 result[key] = value * 100; }, {}); // 第三个参数是初始化的空结果对象
这种方法相比_.mapValues要多写几行代码,但适合需要额外处理逻辑的场景,不过你的需求用第一种就足够啦。
内容的提问来源于stack exchange,提问作者Edgaras Karka
相关产品推荐
相关产品推荐

