Javascript 我可以使用.sort()根据数字属性对对象数组进行排序吗?

Javascript 我可以使用.sort()根据数字属性对对象数组进行排序吗?,javascript,Javascript,如果我有一个数字数组,我可以使用.sort()函数对它们进行快速排序,如下所示: let array = [1, 5, 3, 2, 9, 6]; let sortedArray = array.sort(); 但是,如果我的数组由具有number属性的对象组成,我想知道是否可以使用.sort()。例如,我想知道我是否可以将此: let array = [ { name: "Random1", number: "1" }, { name: "Random2", number: "

如果我有一个数字数组,我可以使用.sort()函数对它们进行快速排序,如下所示:

let array = [1, 5, 3, 2, 9, 6];
let sortedArray = array.sort();
但是,如果我的数组由具有number属性的对象组成,我想知道是否可以使用.sort()。例如,我想知道我是否可以将此:

let array = [
    { name: "Random1", number: "1" },
    { name: "Random2", number: "5" },
    { name: "Random3", number: "3" },
    { name: "Random4", number: "2" },
    { name: "Random5", number: "9" },
    { name: "Random6", number: "6" },
]
根据number属性的值将其转换为

let array = [
    { name: "Random1", number: "1" },
    { name: "Random4", number: "2" },
    { name: "Random3", number: "3" },
    { name: "Random2", number: "5" },
    { name: "Random6", number: "6" },
    { name: "Random5", number: "9" },    
]

sort
方法接受比较函数。您可以在此处阅读更多信息:


array.sort((first,second)=>first.number-second.number)

您可以通过将
比较函数
作为to
sort()
传递来实现这一点

compareFunction |可选

指定定义排序顺序的函数。如果省略,数组元素将转换为字符串,然后根据每个字符的Unicode代码点值进行排序

let数组=[
{name:“Random1”,number:“1”},
{名称:“Random2”,编号:“5”},
{名称:“Random3”,编号:“3”},
{名称:“Random4”,编号:“2”},
{名称:“5”,编号:“9”},
{名称:“6”,编号:“6”},
]
数组.sort((a,b)=>(a.number>b.number)?1:-1;

console.log(数组)
您可以使用数组排序函数回调来比较对象属性
编号

const数组=[
{name:“Random1”,number:“1”},
{名称:“Random2”,编号:“5”},
{名称:“Random3”,编号:“3”},
{名称:“Random4”,编号:“2”},
{名称:“5”,编号:“9”},
{名称:“6”,编号:“6”},
];
const sortedArray=array.sort((a,b)=>a.number-b.number);

控制台日志(Darray)