我有一个对象数组,其中一个字段是整数值,我想使用其字段进行排序。
例如:
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.age
和b.age
包装到parseInt()
的和
myArray = myArray.sort(function(a, b){a.age - b.age});
答案 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);