问题:数组中的元素存在NaN,无论正序还是倒序,均让NaN在最后
const arr = [12,2,2,32,9,4,3,97,34,57,51,'-', 91, 3,25,'-',99]
// 正序
arr.sort((a,b) => {
if(isNaN(a) && isNaN(b)){
return 0;
}
if(isNaN(a)) {
return 1
}
if(isNaN(b)) {
return -1
}
return a-b
})
console.log(arr) //[2, 2, 3, 3, 4, 9, 12, 25, 32, 34, 51, 57, 91, 97, 99, '-', '-']
// 倒序
arr.sort((a,b) => {
if(isNaN(a) && isNaN(b)){
return 0;
}
if(isNaN(a)) {
return 1
}
if(isNaN(b)) {
return -1
}
return b-a
})
console.log(arr) // [99, 97, 91, 57, 51, 34, 32, 25, 12, 9, 4, 3, 3, 2, 2, '-', '-']