我有这个对象:
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/