เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr เป็นอาร์กิวเมนต์แรกและตัวเลขเดี่ยว num เป็นอาร์กิวเมนต์ที่สอง
ฟังก์ชันควรค้นหาตัวเลขสองตัวดังกล่าวซึ่งมีผลรวมมากที่สุดในอาร์เรย์แต่น้อยกว่าจำนวนตัวเลข หากไม่มีตัวเลขสองตัวดังกล่าวซึ่งมีผลรวมน้อยกว่า num ฟังก์ชันของเราควรคืนค่า -1
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตและตัวเลขเป็น −
const arr = [34, 75, 33, 23, 1, 24, 54, 8]; const num = 60;
จากนั้นผลลัพธ์ควรเป็น −
const output = 58;
เพราะ 34 + 24 คือผลรวมที่มากที่สุดซึ่งน้อยกว่า 60
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [34, 75, 33, 23, 1, 24, 54, 8]; const num = 60; const lessSum = (arr = [], num = 1) => { arr.sort((a, b) => a - b); let max = -1; let i = 0; let j = arr.length - 1; while(i < j){ let sum = arr[i] + arr[j]; if(sum < num){ max = Math.max(max,sum); i++; }else{ j--; }; }; return max; }; console.log(lessSum(arr, num));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
58