Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng số, arr, làm đối số đầu tiên và một số duy nhất, num, làm đối số thứ hai.
Sau đó, hàm sẽ tìm hai số như vậy có tổng lớn nhất trong mảng nhưng chỉ nhỏ hơn số num. Nếu không tồn tại hai số như vậy có tổng nhỏ hơn num, hàm của chúng ta sẽ trả về -1.
Ví dụ -
Nếu mảng đầu vào và số là -
const arr = [34, 75, 33, 23, 1, 24, 54, 8]; const num = 60;
Sau đó, đầu ra phải là -
const output = 58;
bởi vì 34 + 24 là tổng lớn nhất nhỏ hơn 60
Ví dụ
Mã cho điều này sẽ là -
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));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
58