Javascript 计算百分比,而不是总和
实际上,我的函数计算每个对象中所有相同键的总和Javascript 计算百分比,而不是总和,javascript,arrays,object,Javascript,Arrays,Object,实际上,我的函数计算每个对象中所有相同键的总和 const arr = [{id:1, "my color":1,"my fruit":4},{id:2,"my color":2,"my fruit":4}]; const res = arr.reduce((a, { id, ...rest }) => { Object.entries(rest).forEach(([key, val]) => { a[key] = (a[key] || 0) + val; });
const arr = [{id:1, "my color":1,"my fruit":4},{id:2,"my color":2,"my fruit":4}];
const res = arr.reduce((a, { id, ...rest }) => {
Object.entries(rest).forEach(([key, val]) => {
a[key] = (a[key] || 0) + val;
});
return a;
}, {});
result is >> [{"my color":3,"my fruit":8}
我想得到它们的百分比(值/值之和),而不是它们的和,像这样
{“我的颜色”:27,“我的水果”:73}
首先将所有值相加,然后将每个条目除以:
// Sum up all properties with same key
const sum = { };
for(const entry of array) {
for(const [key, value] of Object.entries(entry)) {
sum[key] = (sum[key] || 0) + value;
}
}
// Map the array to an array of percentages
const percentage = array.map(entry => {
const result = {};
for(const [key, value] of Object.entries(entry)) {
result[key] = value / sum[key] * 100;
}
return result;
});
试着跟随
var obj={“我的颜色”:3,“我的水果”:8};
var total=对象值(obj).reduce((a,c)=>a+c,0);
Object.keys(obj.forEach)(k=>obj[k]=Math.round(obj[k]*100/总计));
控制台日志(obj)代码>不清楚你在问什么。请你再解释一下。在你的结果中,把所有的值加起来。然后将每个值更改为值*100/sum
。基础数学。