我无法理解下面的问题,希望有人能把我带到正确的方向。
对于社交媒体分析,我想创建一个散点图,显示你每天和每小时收到的点赞数量,这样你就可以知道什么是发布到社交媒体上的好时机。
我得到了一个对象数组,里面有每个帖子的所有信息,比如:天(0-6),什么时候(0-23),点赞的数量。看起来像这样:
var posts_array = [{caption: "hello", day: 0, hours: 2 ,likes:200},
{caption: "hello2", day: 0, hours: 1, likes: 100}];为了绘制散点图,我需要以如下所示的对象数组结束:
var array_objects = [{day: 0, hours:0, sum_of_likes: somenumber},{day:0,
hours:1, sum_of_likes: somenumber}] 我的计划是创建一个对象数组,其中包含日期、小时和点赞总数。然后循环遍历每个帖子、日期和时间,并将点赞数量添加到正确的对象。
到目前为止,我得到了这样的结论:
//create array of objects for each day and hour
var array_objects = [];
for (var i = 0; i < 7; i++) {
for (var j = 0; j < 24; j++) {
var object = new Object();
object.day = i;
object.likes = 0;
object.timeslot = j;
array_objects.push(object);
}
}
//loop through each day and hours
for (var i = 0; i < posts_array.length; i++) { //loop through all posts
for (var j = 0; j < 7; j++) { //loop through each day
if (posts_array[i].day == j){
for (var k = 0; k < 24; k++) { //loop through each hour of day
if(posts_array[i].hours == k){
//how to get object reference?
}
}
}
}
}但我最终很难找到对象的引用。我也想知道这是不是正确的方法,因为它看起来有点单调乏味。
发布于 2017-06-22 02:11:20
在进行过程中合并数据会更容易。为此,您可以创建一个字典字典。
array_objects = {}
for (var i = 0; i < posts_array.length; i++) {
var temp = post_array[i]
if array_objects[temp.day+"_"+temp.hours] {
array_objects[temp.day+"_"+temp.hours][sum_of_likes] += temp.likes
} else {
array_objects[temp.day+"_"+temp.hours] = {day: temp.day, hours: temp.hours, sum_of_likes: temp.likes}
}
}发布于 2017-06-22 02:00:47
嗯,因为你的array_objects是一维的,而且你制作它的方式,你可以这样做:
if(posts_array[i].hours == k){
var reference = array_objects[j * 24 + k];
}不过,这样做要好得多:
for (var i = 0; i < posts_array.length; i++) {
var reference = array_objects[posts_array[i].day * 24 + posts_array[i].hours];
}发布于 2017-06-22 02:24:35
为了解决这个问题,我提出了以下建议:
let scatter_objects = [];
Array.prototype.forEach.call(post_array, (post)=>{
let keys = Object.keys(post);
keys.forEach((key, index, array)=>{
// the arguments are passed for each post object; array is the original post object
// here key is the property like day, hour, likes
// you can now filter each post by key and return an object that
// the end result would be a filtered object pushed to the
// scatter_objects array
// at the end,
scatter_objects.push(processed_object);
});
});https://stackoverflow.com/questions/44683003
复制相似问题