javascript - 对除第一项之外的数组进行排序。 Array.prototype.sort()

标签 javascript arrays sorting optimization logic

let array = [{
    name: 'first'
}, {
    name: 'd'
}, {
    name: 'cc'
}, {
    name: 'bbb'
}, {
    name: 'aaaa'
}]

let firstElement = array.shift()

// sort array by item name's length:

array.sort((a, b) => {
    return b.name.length - a.name.length
})

array.unshift(firstElement)

console.log(array)

我目前正在使用此代码,尽管我相信我可以通过使用此逻辑来摆脱 firstElement 的 .shift() 以及稍后的 .unshift()在 array.sort() 函数中实现,因此我不必创建额外的数组。我已经尝试了在这里找到的几个答案,但到目前为止没有一个适用于我的用例。

最佳答案

您可以检查非第一个元素的 sort() 方法:

let array = [{
    name: 'first'
}, {
    name: 'd'
}, {
    name: 'cc'
}, {
    name: 'bbb'
}, {
    name: 'aaaa'
}]

array.sort((a, b) => {
    if (a !== array[0] && b !== array[0]) { // Check if there are not first element
    return b.name.length - a.name.length
    }
})

关于javascript - 对除第一项之外的数组进行排序。 Array.prototype.sort(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67901928/

相关文章:

javascript - ChartJS - 按月绘制图表,按天绘制数据

javascript - 在默认恢复可放置动画之前播放自定义震动效果?

php - 获取深度不确定的多维数组的叶子节点值

scala - spark RDD 按两个值排序

javascript - 使用自定义排序函数在 JavaScript 中对多维数组进行排序

pandas - Sns barplot 不对切片值进行排序

javascript - jQuery 和 OpenLayers 之间的事件监听器冲突

php - 使用 PHP 快速将 SQL 查询中的所有数据放入数组中

c - 文字数组或复合的使用

Javascript 在对象中添加项目