gpt4 book ai didi

javascript - 排列数组javascript中的对象

转载 作者:行者123 更新时间:2023-11-30 20:42:14 26 4
gpt4 key购买 nike

我有一个 API,可以根据请求从数据库中获取所有对象(电影)。每个对象都有多个评级,用于计算该对象的一个​​主要评级。然后将每个对象插入一个数组。在发送 JSON 响应之前,该数组根据主要评级进行排序。评分最高的排在第一位。

我想要的是每个对象也有它的等级。因此,评分最高的对象还应具有如下属性:“排名”:1。

我只是对在发送响应之前如何实现这一点感到困惑。这是我的代码:

const moviesListByRank = function (req, res) { 
let movieslist = [];
let movieMainRating = null;
Movie.find({}, function(err, movies){
if(err) {
console.log(err)
} else {
movies.forEach(function(movie){
movieslist.push({
name: movies.name,
category: movie.category,
movieMainRating: ((movie.FilterAction + hobby.FilterAdventure + movie.FilterRomantic)/3).toFixed(2),
FilterAction: movie.FilterAction,
FilterAdventure: movie.FilterAdventure,
FilterRomatic: movie.FilterRomantic,
_id: hobby._id
});
});
}
function compare(a,b){
if (b.movieMainRating < a.movieMainRating)
return -1;
if (b.movieMainRating > a.movieMainRating)
return 1;
return 0;
}
movieslist.sort(compare);

res
.status(200)
.json(movieslist);
});
};

最佳答案

一个简单的方法是;在 movieslist.sort(compare); 创建另一个 for 循环之后,forEach 还会返回一个索引,您可以使用它。

movieslist.forEach(function(movie, index){
movie.rank = index + 1;
});

关于javascript - 排列数组javascript中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49130478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com