2017-10-06 67 views
0

所以我有一個包含電影評級的數據集,每部電影都有多個評級。 我設法得到所有的數據,但我想添加所有的值。添加數據集中所有對象的所有值

例如:

title: avatar, rating: 2.5 title: avatar, rating: 3 title: avatar, rating 5

rating = 10.5

avrRating = 10.5/ratings.lenght = 3.5

到目前爲止我的代碼:

(它選擇一個隨機的電影,TH它將其movieId與來自另一個數據集的movieId相匹配。然後我將範圍從0-5轉換爲0-100,以便與data2中的寬度相匹配。評級[I] .rating顯示我多個值,但我想avarage值,見上面的例子

function willekeurigObject() { 

    var blokje = document.querySelector("#data1"); 
    var blokje = document.querySelector("#data2"); 
    var blokje = document.querySelector("#data3"); 

    var willekeurigAdres = Math.floor(Math.random() * films.length); 
    var willekeurigefilm = films[willekeurigAdres]; 

    for (var i = 0; i < rating.length; i++){ 
    if (rating[i].movieId == willekeurigefilm.movieId){ 
     var ratings = rating[i].rating; 
    } 
    } 

    var width = (ratings/0.05) + "%"; 


    data1.innerHTML = willekeurigefilm.title; 
    data2.innerHTML = "<div class='stars'><img src='img/starsinv.png' class='img'></img><div class='yellow' style='width: " + width + "'></div></div>"; 
    data3.innerHTML = ""; 

} 

setInterval(willekeurigObject, 3000); 
+0

使變量名唯一或覆蓋它們 –

回答

0

您可以使用Array.prototype.reduce數組中的加起來所有的值。

https://jsfiddle.net/khzcwnso/

var movies = [{title: 'avatar', rating: 2.5}, {title: 'avatar2', rating: 3}, {title: 'avatar3', rating: 5}]; 

var total = movies.reduce(function(sum, movie){ 
    return sum + movie.rating; 
}, 0); 

var average = total/movies.length; 
相關問題