javascript - 首先获取对象中的最小数字
问题描述
我正在遍历一个对象,该对象是学生的术语列表。我的数据结构如下所示:
terms: {
term-termId1: {
classData: { //some class data here that im not going to list },
class2 : { //some class data here that im not going to list },
class3 : { //some class data here that im not going to list },
termName: 'Spring 2018',
gradeLevel: 9,
},
term-termId2: {
classData: { //some class data here that im not going to list },
termName: 'Summer 2018',
gradeLevel: 9,
},
term-termId3: {
classData: { //some class data here that im not going to list },
class2 : { //some class data here that im not going to list },
termName: 'Summer 2020',
gradeLevel: 12,
},
term-termId4: {
classData: { //some class data here that im not going to list },
termName: 'Summer 2019',
gradeLevel: 11,
},
term-termId5: {
classData: { //some class data here that im not going to list },
termName: 'Summer 2019',
gradeLevel: 10,
},
term-termId6: {
classData: { //some class data here that im not going to list },
termName: 'Winter 2018',
gradeLevel: 9,
},
}
这就是我要给出的所有数据,条目是分散的。
我试图首先获得最低的gradeLevel 条目,以便我可以将它们传递给创建表组件的函数。例如,我想要所有的gradeLevel:首先是9s,然后是10s,然后是11s,然后是12s。
我只是想知道一个很好的方法来做到这一点。我可以想到几种方法,比如在循环中编写一些 if 语句,但我相信它可以做得更好。
目前我是这样开始的:
for (single in terms) {
for (term in terms[single]) {
const classes = terms[single]
console.log(classes[term])
}
}
我知道该循环与我提供的数据不匹配,这就是我在计算机上获取数据的方式。我只是举了一个例子。
无论如何,如果我能得到一些帮助,找出首先获得最低等级条目的最佳方法,那就太好了。
解决方案
首先对对象的值进行排序:
const sortedValues = Object.values(data.terms).sort((a, b) => a.gradeLevel - b.gradeLevel);
然后根据需要迭代sortedValues
。
推荐阅读
- swift - 如何创建增量数字字符串?
- javafx - 如何在JavaFx中将多个TextField放在一个圆圈中
- git - 如何在 vscode 中将更改的文件与未跟踪的文件分开?
- authentication - OWIN 身份验证 Cookie 信息和强制登录,即使未过期
- python - 将django代码部署到aws后,django admin中的数据消失了
- jquery - jQuery,选中单选按钮并标记其他禁用
- python - django/python:通过 **kwargs
- java - 如何在 Spring Boot 中修改 Mono 对象的属性而不阻塞它
- c# - MySQL“每表文件”,未选择数据库错误
- javascript - 一旦光标离开目标元素,如何在javascript中跟踪鼠标移动事件?