javascript - 从JS中的关联数组计算百分比

标签 javascript jquery arrays

假设我有这样一个数组:

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/

相关文章:

javascript - 类 vs 数据- vs 自定义属性

javascript - 关于登录 cookie 的建议

jquery - 如何更改 jquery.ui selectmenu 的字体或大小?

javascript - 如何使用 JavaScript 从父级元素的 ID 获取元素的属性?

java - "Variable Might not have bee initialized."声明的数组变量发生错误

javascript - 直接为对象标签提供数据

javascript - jQuery 返回选定选项属性值

javascript - .htaccess 页面重定向对 AJAX 响应有影响

javascript - 如何动态删除这些元素?

python - max 和 np.max 之间的差异