通过数组中的对象属性获取前三个对象

时间:2019-03-22 16:18:59

标签: javascript

我有一个对象属性为“ vote_average”和“ file_path”的对象数组,我试图找到三个具有最高“ vote_average”值的对象,我仍然需要“ file_path”属性

我可以使用下面的代码找到单个最高的对象,但是我试图找到属性值最高的“ vote_average”的第一,第二和第三对象

var fullFilmImages = data.images.backdrops;

var highestRatedImage = Math.max.apply(Math,fullFilmImages.map(function(img){
    return img.vote_average;}
))

var highestRatedImageOBJ = fullFilmImages.find(function(img){
    return img.vote_average == highestRatedImage; }
)

alert(JSON.stringify(highestRatedImageOBJ));

我尝试了.map方法,但是我需要对象,而不仅仅是属性值,因为对象还包含我需要的另一个名为“ file_path”的属性

let filmImageRatings = fullFilmImages.map(allFilmImages => 
allFilmImages.vote_average).slice(0,3);

1 个答案:

答案 0 :(得分:2)

通过“ vote_average”属性按降序对数组进行排序,然后对数组进行切片。

if password_reset_edit_params[:password].blank? || password_reset_edit_params[:password_confirmation].blank?
      @user.errors[:password] << "can't be blank" if password_reset_edit_params[:password].blank?
      @user.errors[:password_confirmation] << "can't be blank" if password_reset_edit_params[:password_confirmation].blank?
      render 'edit'