使用 JavaScript 在数组中查找第三大数字


我们需要编写一个 JavaScript 函数,该函数接受一个数字数组作为第一个也是唯一的参数。

我们的函数的任务是从数组中选出第三大的数字并返回。如果数组中不包含第三大数字,则我们应只返回数组中的最大数字。

例如 -

如果输入数组为 -

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

那么输出将是 -

const output = 34;

示例

用于此代码的代码将是 -

 实时演示

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

输出

控制台中的输出将是 -

34

更新日期: 2021-03-03

152 次查看

开启你的 职业

通过完成课程获得认证

立即开始
Advertisement