如何根据数字属性对对象数组进行排序

时间:2018-12-27 22:49:34

标签: javascript arrays sorting

因此,我在下面的代码中有一个像这样的数组,我想按高度对其进行排序。这样当我做console.log(array [0]);

时,最矮的人会登录

我不知道该怎么做

let array = [
    {
        name: "John",
        gender: "male",
        height_meters: 1.8
    },
    {
        name: "Cathrine",
        gender: "female",
        height_meters: 1.7
    }
]

3 个答案:

答案 0 :(得分:2)

我们在这里将排序分开,它可以使我们的代码更加清晰,也可以轻松换出或重复使用。 Sort正在寻找我们返回三个值之一以便对其排序的元素。 Less than zero 0Greater than zero。大多数文档都将其显示为严格的-101。但是-1+1的任何正负都可以代替,这使我们能够在对数字进行排序时如此简洁。

let array = [
    {
        name: "John",
        gender: "male",
        height_meters: 1.8
    },
    {
        name: "Cathrine",
        gender: "female",
        height_meters: 1.7
    },
    {
        name: "Cathrine",
        gender: "female",
        height_meters: 1.3
    },
    {
        name: "Cathrine",
        gender: "female",
        height_meters: 1.95
    },
    {
        name: "Cathrine",
        gender: "female",
        height_meters: 2.7
    }
]

const sortBy = (itemA, itemB) => itemA.height_meters - itemB.height_meters;

console.log(array.sort(sortBy));

答案 1 :(得分:1)

本机方式

arr.sort((a, b) => a.height_meters - b.height_meters);

使用Lodash库

_.orderBy(arr, ['height_meters'], ['asc']);

答案 2 :(得分:0)

使用array.sort()

array.sort((a,b)=>{
    return a.height_meters-b.height_meters
})

我希望这会有所帮助!