首页 > 解决方案 > 按属性是否存在对对象数组进行排序

问题描述

我有一组教师,每个教师都有一个带有属性userimage属性,可以包含一个stringnull值。user.image考虑到属性,我如何订购阵列?

这是一个结构的例子。

const teachers = [
    {
        id: 1,
        user: {
            id: 10,
            image: "image.jgp"
        }
    },
    {
        id: 3,
        user: {
            id: 30,
            image: null
        }
    },
    {
        id: 2,
        user: {
            id: 20,
            image: "image.jgp"
        }
    },
    {
        id: 4,
        user: {
            id: 40,
            image: null
        }
    },
]

标签: javascriptarraysalgorithmsorting

解决方案


您可以使用Array.sort并检查该image属性是否为null

const teachers=[{id:1,user:{id:10,image:"image.jgp"}},{id:3,user:{id:30,image:null}},{id:2,user:{id:20,image:"image.jgp"}},{id:4,user:{id:40,image:null}}];

const sorted = teachers.sort((a, b) => b.user.image === null ? -1 : 1)

console.log(sorted)


推荐阅读