Computer >> Máy Tính >  >> Lập trình >> Javascript

Sắp xếp một mảng JavaScript để các giá trị NaN luôn ở cuối.

Chúng ta có một mảng chứa kiểu dữ liệu hỗn hợp Chuỗi và đánh số, chúng ta phải viết một hàm sắp xếp để sắp xếp mảng sao cho các giá trị NaN luôn ở cuối cùng. Mảng nên chứa tất cả các số bình thường, trước tiên là chuỗi ký tự và sau đó là NaNnumbers.

Chúng tôi biết rằng loại dữ liệu của NaN là "số", vì vậy chúng tôi không thể kiểm tra chuỗi NaN like! Number &&!. Hơn nữa, nếu chúng ta chỉ đơn giản kiểm tra tính nguyên vẹn và sai lệch của các phần tử thì các chuỗi rỗng cũng sẽ thỏa mãn cùng một điều kiện mà NaN hoặc không xác định thỏa mãn.

Kiểm tra NaN

Vì vậy, làm thế nào để chúng tôi kiểm tra NaN. Các số NaN có một thuộc tính đặc biệt và NaN là giá trị đáng chú ý đối với NaN, tức là đối với bất kỳ giá trị nào khác trong JS, dù là bất kỳ, giá trị ===giá trị sẽ mang lại giá trị true, nhưngNaN ===NaN luôn cho kết quả là false. Chúng tôi sẽ sử dụng thực tế này để sắp xếp mảng của chúng tôi.

Ví dụ

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);

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[
   765, 23, 89, 87,
   76, 76, 5, 344,
   'fd', '', 'f', 'fdf',
   'fgg', NaN, NaN, NaN,
   NaN
]