[英]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.