如何将带键名的字符串数值集合转为纯数字数组以进行算术运算?
解决方案:将键值对象转换为数值数组并求和
没问题,我来帮你搞定这个需求!首先得提一句:你写的原始代码存在小语法问题——JavaScript里数组不能用T1:"56"这种键值对格式,应该是个对象(用大括号{}包裹),所以先把它修正成合法的代码:
var hasil = { T1:"56", T2:"90", T3:"20"};
接下来分两步实现你的目标:
1. 转换为数值数组 [56, 90, 20]
我们可以用Object.values()提取对象的所有值,再通过map()把每个字符串类型的数字转换为数值类型:
// 提取值并转成数字数组 var numArray = Object.values(hasil).map(str => Number(str)); console.log(numArray); // 输出: [56, 90, 20]
如果你的运行环境不支持Object.values()(比如较老的浏览器),可以改用Object.keys()遍历对象键名来获取值:
var numArray = Object.keys(hasil).map(key => Number(hasil[key]));
2. 对数组进行算术运算(比如求和)
得到数值数组后,就可以自由使用算术运算符了。最简洁的求和方式是用reduce()方法:
// 计算数组元素的总和 var total = numArray.reduce((sum, num) => sum + num, 0); console.log(total); // 输出: 166
你也可以把转换和求和合并成一行代码,省去中间数组变量:
var total = Object.values(hasil).reduce((sum, str) => sum + Number(str), 0);
这样就完全满足你的需求啦!
内容的提问来源于stack exchange,提问作者Isk
相关产品推荐
相关产品推荐

