use*_*074 6 javascript ionic-framework ionic3
我有以下对象,每个人的运动点数.此信息来自数据库,基于搜索"杰克米勒"
Jdata = {
"name": "Jack Miller",
"sports": {
"Basketball": 2,
"Football": 3,
"Iceskating": 5,
"Running": 4,
}
}
Run Code Online (Sandbox Code Playgroud)
我想在我的HTML页面上显示名称的前2(3)项运动.做到这一点,我正在考虑将信息提取到这样的数组中:
SportVal = [];
SportNames = [];
for(var key in this.Jdata.sports){
if(!this.Jdata.sports.hasOwnProperty(key)){
continue;
}
this.SportVal.push(this.Jdata.scores[key]);
this.SportNames.push(key)
}
Run Code Online (Sandbox Code Playgroud)
然后我必须按降序对SportVal数组进行排序,并且可以在HTML中使用例如ngFor来显示结果.
但是,我如何取回相应的名称?此外,我认为这不是最有效的方法,因为如果分数相等,我会遇到问题.所以你可能更好地了解如何做到这一点?
你可以Array.prototype.sort()用来做.
Jdata = {
"name": "Jack Miller",
"sports": {
"Basketball": 2,
"Football": 3,
"Iceskating": 5,
"Running": 4,
}
}
const sorted = Object.entries(Jdata.sports)
.sort((a, b) => b[1] - a[1])
.slice(0, 3)
.map((pair) => pair[0]);
console.log(sorted);Run Code Online (Sandbox Code Playgroud)