为了账号安全,请及时绑定邮箱和手机立即绑定

如何循环包含Javascript中的对象的对象

如何循环包含Javascript中的对象的对象

桃花长相依 2021-05-10 16:25:04
我有一个看起来像这样的对象(我们称其为帖子)[ { _id: 5cc2d552939a9b290bfaee18,    rating: 1,    __v: 0 },  { _id: 5cc2d6362c9b3729253d14eb,    rating: 4,    __v: 0 } ]该对象的大小改变。每次调用该函数时,我都希望遍历帖子,并求和。然后,我想将等级除以帖子中的项目数。我试图做这样的事情Object.keys(posts).forEach(function (item, value) {        });但是无法获取实际数据
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我有一个对象(我们称它为post)。我们称其为array或map。而且,您始终可以遍历数组。您可以for为此使用简单循环。


循环将使您获得数组元素一个接一个的元素,在您的情况下这将是对象。现在,您可以轻松获取rating每个对象的属性值并将它们加起来,然后除以数组的长度。


你应该以类似


var data = [ { _id: '5cc2d552939a9b290bfaee18',

        rating: 1,

        __v: 0 },

      { _id: '5cc2d6362c9b3729253d14eb',

        rating: 4,

        __v: 0 } ];


    var sum = 0;

    

    for(var i=0; i< data.length; i++){

      sum = sum + data[i].rating;

    }


    var result = sum/data.length;

    

    console.log(result);

我已经解释了这一切,所以您不仅可以复制并粘贴它。请务必阅读说明。


查看完整回答
反对 回复 2021-05-13
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

你有一个数组,而不是一个对象。您需要遍历数组,而不是对象


 let posts = [ 

{ _id: 5cc2d552939a9b290bfaee18,rating: 1, __v: 0 },

{ _id: 5cc2d6362c9b3729253d14eb,rating: 4,__v: 0 } 

], sum = 0, average = 0;


//so you need the average of the ratings, get the sum of the ratings


posts.map(post => sum += post.rating);


//divide the sum by the length of the items


average = sum/posts.length


查看完整回答
反对 回复 2021-05-13
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

哦,对于初学者来说,您遍历仅键的数组就Object.keys可以得到键,而不是值,这样就没用了。


    function getAverageRating(posts, detailed)

    {

        let totalPosts = 0;

        let totalRatings = 0;

        posts.forEach(function (item, index) {

            totalRatings += item.rating;

            totalPosts++;

        });

        if(detailed){

            return {"total_posts":totalPosts, "sum_ratings":totaltotalRatings, "avg":totaltotalRatings/totalPosts}

        }else{

            return totaltotalRatings/totalPosts

        }


    }


查看完整回答
反对 回复 2021-05-13
  • 3 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信