javascript - array.sort(function(a, b) {return b.value - a.value) 不工作
问题描述
我想从 firebase 检索数据并根据字段“overallScore”以降序对它们进行排序。我看过其他关于使用 array.sort(function(a, b) {return b.value - a.value) 的帖子,但是这行代码无法为我排序数组,我不知道为什么。
我的 firebase 数据结构如下所示:
我的代码看起来像:
getAll: function(){
database.collection('Users').get().then(querySnapShot => {
let data = [];
querySnapShot.forEach(doc => {
data.push(doc.data())
})
this.datasets = data;
this.getTop();
})
},
getTop: function(){
var today = String(moment(String(new Date())).format("DDMMYYYY"));
var top = [];
for (var i = 0; i < this.datasets.length; i++) {
if (this.datasets[i].scoreDate == today){
top.push(this.datasets[i]);
}
}
top.sort(function(a, b){return b.overallScore - a.overallScore});
this.top10 = top;
},
这是 for(...) 之后的控制台日志结果:
解决方案
sort()方法返回值有 3 个选项:1、-1、0
top.sort(function (a, b) { return a.overallScore > b.overallScore ? 1 : a.overallScore < b.overallScore ? -1 : 0 });
推荐阅读
- v4l2 - 运行两个具有各自属性的 v4l2loopback 设备
- css - 有没有办法将 CSS 添加到 SVG 文件中的标题元素?
- c - 如何在 fopen() 函数中使用和输入用户作为参数?
- reactjs - 在 Next.js 中对 Link 元素使用 'as' 属性会导致 404 并刷新
- spring - 上下文初始化期间遇到异常 - 取消刷新尝试.....单例实例尚未初始化 - 但在本地 VM 中工作
- c++ - 为什么 const return 会阻止:(a1 = a2) = a3?
- python - 如何格式化日期时间数据以适应谷歌日历 api 的日期字段?
- bazel - bazel Target @platforms//os:windows 被引用为平台,但不提供 PlatformInfo
- discord.py - 用 discord.py 重写的数字猜谜游戏
- c# - c# wcf webservice接受json动态数据