计算对象键值并将其转换为百分比(100%)

calculate and transform object key values into percentages (on 100%)

本文关键字:百分比 100% 转换 对象 键值 计算      更新时间:2023-09-26

我有这个对象:

myObj = {
    red: "332",
    green: "632",
    yellow: "14",
    brown: "45",
    pink: "83",
    violet: "21",
    gray: "100",
    black: "33",
    white: "200"
};

我需要计算这些对象键值并将其转换为百分比(100%)

有没有办法做到这一点?

如果您希望

根据最高数字获取百分比,这里有一个包含两个循环的示例(一个用于查找最大值,另一个用于更改实际值):

var res = document.getElementById('r');
var myObj = {
    red: "332",
    green: "632",
    yellow: "14",
    brown: "45",
    pink: "83",
    violet: "21",
    gray: "100",
    black: "33",
    white: "200"
};
var max = 0;
for (var i in myObj) { // we find the max here
  if (parseInt(myObj[i], 10) > max) 
    max = myObj[i]; 
}
for (var i in myObj) { // we do the conversion here
  myObj[i] = (myObj[i] / max * 100) + "%";
  res.innerHTML += "<br>" + i + ": " + myObj[i]; // html output
}
<div id="r"></div>


如果您希望获得总计的百分比(总计是所有值的总和):

var res = document.getElementById('r');
var myObj = {
    red: "332",
    green: "632",
    yellow: "14",
    brown: "45",
    pink: "83",
    violet: "21",
    gray: "100",
    black: "33",
    white: "200"
};
var total = 0;
for (var i in myObj) { // we find the total here
    total += parseInt(myObj[i], 10); 
}
for (var i in myObj) { // we do the conversion here
  myObj[i] = (myObj[i] / total * 100) + "%";
  res.innerHTML += "<br>" + i + ": " + myObj[i]; // html output
}
<div id="r"></div>

注意:您可能希望将这些数字四舍五入为较少的小数位数。

首先,您需要找到最大的数字。然后,您需要使用它来查找百分比。所以,假设你发现 632 是最大的数字。每个其他数字的百分比将是该数字除以 632。