假设我有这样一个数组:
var arr = [];
arr["india"] = 7;
arr["indonesia"] = 3;
arr["usa"] = 1;
[india: 7, indonesia: 3, usa: 1]
我需要得到一个像 [india: (7/11*100), indonesia: (3/11*100), usa: (1/11*100)]
这样的数组,即, 在 javascript 中使用单个循环获取每个国家/地区值的百分比。我怎样才能实现它?
最佳答案
您可以使用 array#reduce
对所有值求和,然后在 array#map
中计算百分比
var arr = {};
arr["india"] = 7;
arr["indonesia"] = 3;
arr["usa"] = 1;
let sum = Object.keys(arr).reduce((s,k) => s += arr[k], 0);
var result = Object.keys(arr).map(k => ({[k] : (arr[k]/sum * 100).toFixed(2)}));
console.log(result);
关于javascript - 从JS中的关联数组计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46783372/