簡體   English   中英

javascript附加到數組動態索引

[英]javascript append to array dynamically index

我要嘗試做的是創建一個數組,在該數組中,我將保持對已評級電影的用戶的電影評級。.根據my_ratings大小的長度,我需要將這些用戶放在單獨的數組中。 這意味着,如果我的評級是由3部電影制作的,則我必須具有movie_users [1] =對該電影也評級為1 ...的所有user_id,與movie_users [2]和movie_users [3]相同。

    for(var i = 0; i < my_ratings.length; i++){
       for(var j=0; j < user_movie_rating.length; j++){
         if(my_ratings[i].movie_id == user_movie_rating[j].movieId){
           movie_users[i].push(user_movie_rating[j].userId);
          }
       }                             
   }

我怎樣才能做到這一點?

您可以使用哈希表,並且對兩個數組僅迭代一次。

在第一個循環中,在user_movie_rating設置帶有實際評級對象的哈希表,在第二個循環中,在my_ratings檢查並通過實際索引將userId推送到movie_users

var hash = Object.create(null);

user_movie_rating.forEach(function (rating) {
    hash[rating.movieId] = rating;
});

my_ratings.forEach(function (rating, i) {
    if (hash[rating.movie_id]) {
        movie_users[i].push(hash[rating.movieId].userId);
    }
});

使用ES6,您可以使用Set而不是對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM