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