首页 > 解决方案 > 我有对象数组,我的目标是仅使用 forEach 按升序打印对象的年龄

问题描述

我以学生的名义在该数组中有 Array 我有四个不同的对象。现在我必须打印这些对象,但年龄应该按升序排列,我只能通过使用来做到这一点forEach

var students = [{
    name: 'Mark',
    age: 28
  },
  {
    name: 'Johnson',
    age: 30
  },
  {
    name: 'Williams',
    age: 12
  },
  {
    name: 'Henry',
    age: 27
  }
]

students.forEach(fun)

function fun(currentValue, index, arr) {
  console.log(currentValue)
}

标签: javascript

解决方案


您不使用forEach对数组进行排序,而是使用sort(不足为奇!)

var students = [{
    name: 'Mark',
    age: 28
  },
  {
    name: 'Johnson',
    age: 30
  },
  {
    name: 'Williams',
    age: 12
  },
  {
    name: 'Henry',
    age: 27
  }
]

students.sort(sortByAge).forEach(fun)

function sortByAge(a,b){
    return a.age - b.age;
}

function fun(currentValue, index, arr) {
  console.log(currentValue)
}


推荐阅读