【发布时间】:2021-11-01 22:18:12
【问题描述】:
我有一组教师,每个教师都有一个属性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
}
},
]
【问题讨论】:
-
他们的订单应该是什么?只有两个值
-
顺序应该是,首先所有
user.image为字符串的对象,所有user.image为空的对象,在最后。数组只是一个例子,结构只是解释问题的基础。 -
这是一个编写排序函数的问题,它比较数组中的两个元素。在您的情况下,它类似于
(a, b) => a.user.image.localeCompare(b.user.image)。我写过关于比较对象的文章:freecodecamp.org/news/supercharged-sorts-in-javascript -
它没有,因为我只是介意是否是一个值,而不是 unicode o 值
标签: javascript arrays algorithm sorting