javascript - 循环访问 javascript 对象数组中的多个变量

标签 javascript jquery arrays

我无法理解以下内容,希望有人能引导我走向正确的方向。

对于社交媒体分析,我想创建一个散点图,显示您按天和按小时收到的点赞数,以便您了解在社交媒体上发帖的最佳时机。

我得到了一个对象数组,其中包含每个帖子的所有信息,例如:天(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?
                }   
            }
        }   
    }
}

但我最后很难找到该对象的引用。我也想知道这是否是正确的方法,因为这似乎有点乏味。

最佳答案

随着您的操作,合并数据会更容易。您可以为此目的创建一个字典的字典。

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}
    }
}

关于javascript - 循环访问 javascript 对象数组中的多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44683003/

相关文章:

javascript - 在 Angular 4 中连续循环 CSS 样式

javascript - onscroll 修复 div 并添加一个在 mozilla 中有问题的类

c - 在 C 中寻找中位数

java - 如何通过将单个数组与流连接来实例化字符串数组流

javascript - 工具提示内的任何 HTML 标记都会导致基本工具提示在悬停时关闭

javascript - html javascript中的范围 slider

javascript - Echarts - 自定义工具箱功能标记/评论

javascript - 一次打开一个 div 并关闭所有其他打开的 jquery

javascript - 使用js/jquery扩展和缩回div

java - 使用插入算法将对象从一个数组复制到另一个数组的 "beginning"