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

标签 javascript object percentage

我有这个对象:

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>

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

关于javascript - 计算对象键值并将其转换为百分比(100%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350704/

相关文章:

javascript - isNaN() javascript,带 2 个逗号的数字

jquery - 增加flot饼图中的百分比字体大小

javascript - var flashElements = document.getElementsByTagName ("EMBED"的最佳替代品;

javascript - 如何为对象当前值添加值

javascript - 比较两个数组对象数据并作为一个对象合并到 javascript 中的数组中?

javascript - 从 json 数组设置 Twig 变量

python - 通过 python 中的 namedtuple csv 循环跟踪进度

javascript - 克拉姆当延伸

javascript - Node Js CreateWriteStream不会写入目录

javascript - 创建 OOP Javascript 的误区