Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาจำนวนสูงสุดที่สามภายในอาร์เรย์ใน 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