javascript - 按属性是否存在对对象数组进行排序
问题描述
我有一组教师,每个教师都有一个带有属性user
的image
属性,可以包含一个string
或null
值。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
}
},
]
解决方案
您可以使用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)
推荐阅读
- facebook - Facebook API - retrieve notifications for my own messages
- python - Shapely's Simplify does not simplify
- flutter - 修改 SVG 文件颤动
- java - Split huge Json objects for saving into database
- python - What's the proper way to check in a Model's save() method if a FileField was committed in Django?
- ag-grid - Exception has occurred: TypeError: Cannot assign to read only property with ag-grid-community cellEditor: 'numericEditor'
- php - 使用 isset() 检查值是否存储在数据库中
- python - How to aggregate data and plot all groups
- mysql - 获取员工以及有多少员工为他们工作
- php - 如何在不保存到文件的情况下以 HTML 格式显示图像