首页 > 解决方案 > JS - 对对象数组进行排序

问题描述

我正在尝试对 JS 中的对象数组进行排序,但由于某种原因它不起作用:(

这是我正在运行的代码:

let  myArr = [{"name": "a", "age": 21}, {"name": "b", "age": 18}, {"name": "c", "age": 20}];
console.log(myArr.sort((a, b) => {
    return a["age"] > b["age"];
}))

输出与声明的数组相同:

[
  { name: 'a', age: 21 },
  { name: 'b', age: 18 },
  { name: 'c', age: 21 }
]

当我查看它时,它似乎是按原样写的,不太确定出了什么问题。

知道我做错了什么吗?

标签: javascriptnode.js

解决方案


使用-而不是>. 它应该返回一个Number类型而不是Boolean类型。在 mdn 上查看排序

let myArr = [
  { name: "a", age: 21 },
  { name: "b", age: 18 },
  { name: "c", age: 20 },
];
console.log(
  myArr.sort((a, b) => {
    return a["age"] - b["age"];
  })
);

arrow使用函数使用单行语法

let myArr = [
  { name: "a", age: 21 },
  { name: "b", age: 18 },
  { name: "c", age: 20 },
];
console.log(myArr.sort((a, b) => a.age - b.age));


推荐阅读