Javascript按整数字段排序对象

时间:2019-09-25 19:23:03

标签: javascript arrays sorting object

我有一个对象数组,其中一个字段是整数值,我想使用其字段进行排序。

例如:

var myArray = {
    { name: "Robert", age: 47 },
    { name: "Carl", age: 22 },
    { name: "Ronaldo", age: 15 }
};

myArray.sort(function(a, b){ a.age - b.age });

实际程序每24小时运行一次并对数组进行排序,有时它会正确排序(没有代码更改),有时(其中大多数)它会执行随机排序。

所需的输出将是:

myArray = {
{ name: "Ronaldo", age: 15 },
{ name: "Carl", age: 22 },
{ name: "Robert", age: 47 }
}

但是每次我运行代码时,它都会给出不同的顺序,因为它根本没有排序。

真正的数组有0-3000个条目,每个对象都有很多属性。我不知道它是否与数组或数据结构的大小有关。

已经到处搜索,每个人都告诉传递一个自定义JS函数来对数组进行排序。然后,该函数将与“ ifs”进行比较或相减,但我找不到有人在谈论这个……

我尝试将a.ageb.age包装到parseInt()的和

myArray = myArray.sort(function(a, b){a.age - b.age});

1 个答案:

答案 0 :(得分:2)

您需要从函数中返回值。

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

const myArray = [{
    name: "Ronaldo",
    age: 15
  },
  {
    name: "Carl",
    age: 22
  },
  {
    name: "Robert",
    age: 47
  }
];

const sortedArray = myArray.sort(function(a, b) {
  return a.age - b.age
});

console.log(sortedArray);