对JavaScript数组进行排序,以便NaN值始终在底部结束。
我们有一个包含String和数字混合数据类型的数组,我们必须编写一个对数组进行排序的排序函数,以便NaN值始终在底部结束。数组应包含所有常规数字,然后是字符串文字,然后是NaN数字。
我们知道NaN的数据类型是“数字”,因此我们无法检查NaN,如!number&&!string。此外,如果仅检查元素的重言式和虚假性,则空字符串也将满足NaN或未定义的条件。
检查NaN
那么我们如何检查NaN。NaN数字具有特殊的属性,即NaN不等于NaN,也就是说,对于JS中的任何其他值,无论是哪个值,值===值都会产生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 ]
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短