เราจำเป็นต้องเขียนฟังก์ชัน 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