Javascript--使用指定的对象属性顺序对对象数组进行排序

Yud*_*udi 1 javascript arrays sorting javascript-objects

最近我正在建立一个小型的网络应用程序,我有一系列的对象,如

[
    {
        id: '3',
        semester: 'summer freshman',
        rating: '10'
    },
    {
        id: '4',
        semester: 'spring freshman', 
        rating: '9.5'
    },
    {
        id: '5',
        semester: 'fall freshman',
        rating: '10'
    }
] 
Run Code Online (Sandbox Code Playgroud)

,我如何按顺序对数据进行排序,以便semester == fall freshman首先输入条目,然后输入条目semester == spring freshman,最后输入semester == summer freshman.

换句话说,有没有办法根据每个对象中的semester属性的值对我的对象数组进行排序,使其遵循以下顺序:

["fall freshman", "spring freshman", "summer freshman", "fall sophomore" ...]
Run Code Online (Sandbox Code Playgroud)

谢谢!!

sha*_*191 5

您可以使用自定义排序方法.保持一系列学期的所需订单.然后根据学期数组对数组进行排序.

let arr = [
    {id: '3', semester:'summer freshman', rating: '10'}, 
    {id: '4', semester: 'spring freshman', rating: '9.5'}, 
    {id:'5', semester:'fall freshman', rating: '10'}
] 

const semesterList = ["fall freshman", "spring freshman", "summer freshman", "fall sophomore"]

arr.sort((a, b) => semesterList.indexOf(a.semester) - semesterList.indexOf(b.semester))
Run Code Online (Sandbox Code Playgroud)