เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวเลข ฟังก์ชั่นควรส่งคืนอาร์เรย์ย่อยของสององค์ประกอบที่อยู่ติดกันจากอาร์เรย์ดั้งเดิมซึ่งมีผลรวมน้อยที่สุดในบรรดาคู่ของอาร์เรย์ที่อยู่ติดกันทั้งหมด
หากความยาวของอาร์เรย์น้อยกว่า 2 เราควรคืนค่าบูลีนเป็นเท็จ
ตัวอย่างเช่น หากอาร์เรย์อินพุตเป็น −
const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];
ในที่นี้ ผลรวมของคู่ [-23, 1] คือ -22 ซึ่งน้อยที่สุดสำหรับสององค์ประกอบที่อยู่ติดกันของอาร์เรย์ ดังนั้นฟังก์ชันควรส่งคืน [-23, 1]
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];
const leastSum = arr => {
if(arr.length <= 2){
return false;
};
const creds = arr.reduce((acc, val, ind) => {
let { smallest, startIndex } = acc;
const next = arr[ind+1] ;
if(!next){
return acc;
}
const sum = val + next;
if(sum < smallest){
startIndex = ind;
smallest = sum;
};
return { startIndex, smallest };
}, {
smallest: Infinity,
startIndex: -1
});
const { startIndex } = creds;
return [arr[startIndex], arr[startIndex + 1]];
};
console.log(leastSum(arr)); ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -
[-23, 1]