Javascript 按整数字段对对象进行排序

标签 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});

最佳答案

您需要从函数返回值。

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);

关于Javascript 按整数字段对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58105269/

相关文章:

php - 如何按类别列出评论? (操作数组)

基于另一个部分列表的排序对列表进行排序的算法

javascript - ExpressJS - 为通用 Nuxt 应用程序和 AngularJS SPA 提供服务

javascript - 如何使用 CSS 溢出 : hidden to avoid the parent container grow

javascript - 将参数传递给 ng-show 中调用的函数

javascript - 使用 Javascript 和 PHP 将 JSON 存储为 CSV

arrays - k 大小的子序列中差异的最大值

php - 使用数组中的参数生成 URL

java - 如何按值对 ConcurrentHashMap 进行排序?

python - 使用关键字列表中的主键和字母顺序作为辅助键对字典列表进行排序