在 Javascript 中使用 sort() 将 NaN 推到数组末尾


我们有一个包含字符串和数字混合数据类型的数组,我们必须编写一个排序函数,使数组排序,以便 NaN 值始终位于底部。

该数组应包含前面的所有有效数字,后跟字符串文本,后跟 NaN。

代码如下 -

const arr = [344, 'gfd', NaN, '', 15, 'f',176, NaN, 736, NaN, 872, 859,
'string', 13, 'new', NaN, 75];
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);

输出

在控制台中的输出 -

[
   75, 13, 859,
   872, 736, 176,
   15, 344, 'gfd',
   '', 'f', 'string',
   'new', NaN, NaN,
   NaN, NaN
]

更新于: 14-10-2020

395 次浏览

开启您的 职业生涯

完成课程获得认证

开始
广告