前端项目实战131-数组优先排序和次排序


function sortData(list) {
    let result = []
    const colorGroup = {}
    for (const item of list) {
        if (!colorGroup[item.color]) {
            colorGroup[item.color] = []
        }
        colorGroup[item.color].push(item)
    }

    const colorIds = []
    for (const colorId in colorGroup) {
        colorIds.push(colorId)
        colorGroup[colorId] = colorGroup[colorId].sort((a, b) => a.size - b.size)
    }

    const sortColorIds = colorIds.sort((a, b) => b - a)
    for (const colorId of sortColorIds) { result = [...result, ...colorGroup[colorId]] }

    return result
}

posted @ 2022-10-26 22:31  前端导师歌谣  阅读(44)  评论(0)    收藏  举报