【发布时间】:2019-01-14 22:08:07
【问题描述】:
我正在尝试在 Javascript/jQuery 中找到一种有效的方法来执行以下操作:
我得到了一个包含对象的数组,每个对象都包含一个日期和一个评级。许多条目具有相同的日期。我想创建另一个对象数组,每个对象都包含日期(唯一)和当天所有评分的平均值。
示例数据:
var array = [{
date: "07-08-2018"
rating: 3
},{
date: "07-08-2018"
rating: 5
},{
date: "08-08-2018"
rating: 2
},{
date: "08-08-2018"
rating: 1
},{
date: "09-08-2018"
rating: 3
},{
date: "09-08-2018"
rating: 5
}
]
我要做什么:
var averageArray = [{
date: "07-08-2018",
rating: 4
},{
date: "08-08-2018",
rating: 1.5
},{
date: "09-08-2018",
rating: 4
}]
我当前的代码(只返回 2 个值而不是 3 个)
var oldDate = new Date(array[0].date);
var sum = 0;
var counter = 0
var newArray = []
for(var i = 0; i < array.length; i++){
var date = new Date(array[i].date);
if(date > oldDate){
console.log("new day");
var avg = (sum/counter);
//console.log(avg);
var newObject = new Object({
date: date,
rating: avg
});
newArray.push(newObject);
counter = 0;
sum = 0;
oldDate = date;
}
counter++;
sum = sum + array[i].rating;
console.log(counter + " " + sum)
}
console.log(newArray)
【问题讨论】:
-
请向我们展示您尝试过的方法并概述您遇到问题的地方。 Stackoverflow 不是免费的代码编写服务。此处的目标是让其他人在您的代码未按预期工作时帮助您改进
-
忘记了,只是添加了我当前的代码。最终数组中只返回两个值,感觉需要很多行。
标签: javascript jquery arrays node.js