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/