Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm số lớn nhất thứ ba trong mảng bằng JavaScript


Cần viết hàm JS nhận mảng số, trả về số lớn nhất thứ ba. Nếu không có số lớn nhất thứ ba (mảng < 3 phần tử distinct), trả về số lớn nhất.

Ví dụ:

const arr = [34, 67, 31, 87, 12, 30, 22];

Kết quả:

const output = 34;

Ví dụ

Mã thực hiện:

const arr = [34, 67, 31, 87, 12, 30, 22]; const findThirdMax = (arr = []) => {    const map = {};    let j = 0;    for (let i = 0, l = arr.length; i < l; i++) {       if(!map[arr[i]]){          map[arr[i]] = true;       }else{          continue;       };       arr[j++] = arr[i];    };    arr.length = j;    let result = -Infinity;    if (j < 3) {       for (let i = 0; i < j; ++i) {          result = Math.max(result, arr[i]);       }       return result;    } else {       arr.sort(function (prev, next) {          if (next >= prev) return -1;          return 1;       });       return arr[j - 3]    }; }; console.log(findThirdMax(arr));

Kết quả

Kết quả in ra console:

34