对 JavaScript 数组进行排序,使 NaN 值始终位于底部。
javascriptweb developmentobject oriented programming更新于 2025/10/2 2:52:17
我们有一个包含字符串和数字混合数据类型的数组,我们必须编写一个排序函数对数组进行排序,使 NaN 值始终位于底部。数组应首先包含所有正常数字,然后是字符串文字,然后是 NaN 数字。
我们知道 NaN 的数据类型是"数字",因此我们不能像 !number && !string 那样检查 NaN。此外,如果我们仅检查元素的重言式和假值,那么空字符串也将满足 NaN 或 undefined 满足的相同条件。
检查 NaN
那么我们如何检查 NaN。 NaN 数字具有一个特殊属性,即 NaN 不等于 NaN,即对于 JS 中的任何其他值,无论它是哪个,value === value 都会产生 true,但 NaN === NaN 总是产生 false。我们将利用这一事实对数组进行排序。
示例
const arr = [344, 'fd', NaN, '', 5, 'f',76, NaN, 76, NaN, 87, 89, 'fdf',
23, 'fgg', NaN, 765];
const sorter = (a, b) => {
if(a !== a){
return 1;
}else if(b !== b){
return -1;
}
return typeof a === 'number' ? -1 : 1;
};
arr.sort(sorter);
console.log(arr);
输出
控制台中的输出将是 −
[ 765, 23, 89, 87, 76, 76, 5, 344, 'fd', '', 'f', 'fdf', 'fgg', NaN, NaN, NaN, NaN ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

