JAVASCRIPT
VUE
REACT
NODE
ES6
TYPESCRIPT

数组里的值换算成百分比

2021. 07. 15    

数组里的值换算成百分比

let data = [
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "花积分", "value": 128 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "招商银行", "value": 125 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "滴滴", "value": 242 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "有赞", "value": 242 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "携程", "value": 121 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "美团", "value": 242 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "饿了么", "value": 121 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "杭州银行", "value": 242 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "建设银行", "value": 242 }
]
let arr = new Set();
data.map((v) => {
	arr.add(v.timeValue);
});
let a = Array.from(arr);
a = a.map((o) => {
	let obj = {};
	obj.name = o;
	let num = 0;
	data.map((v) => {
		if (v.timeValue == o) {
			num += v.value;
		}
	});
	obj.val = num;
	return obj;
});
data.map((v) => {
	a.map((o) => {
		if (v.timeValue == o.name) {
			v.perfect = Math.round((v.value / o.val) * 1000) / 10;
		}
	});
});
console.log(JSON.stringify(data))
[
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "花积分", "value": 128, "perfect": 7.5 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "招商银行", "value": 125, "perfect": 7.3 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "滴滴", "value": 242, "perfect": 14.2 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "有赞", "value": 242, "perfect": 14.2 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "携程", "value": 121, "perfect": 7.1 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "美团", "value": 242, "perfect": 14.2 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "饿了么", "value": 121, "perfect": 7.1 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "杭州银行", "value": 242, "perfect": 14.2 },
	{ "timeType": "date", "timeValue": "2021-07-12", "type": "建设银行", "value": 242, "perfect": 14.2 }
]