首页 > 解决方案 > 首先获取对象中的最小数字

问题描述

我正在遍历一个对象,该对象是学生的术语列表。我的数据结构如下所示:

 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])
      }
    }

我知道该循环与我提供的数据不匹配,这就是我在计算机上获取数据的方式。我只是举了一个例子。

无论如何,如果我能得到一些帮助,找出首先获得最低等级条目的最佳方法,那就太好了。

标签: javascriptobject

解决方案


首先对对象的值进行排序:

const sortedValues = Object.values(data.terms).sort((a, b) => a.gradeLevel - b.gradeLevel);

然后根据需要迭代sortedValues


推荐阅读