เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอินพุตแรกและเพียงอย่างเดียว ฟังก์ชันเลือกซับอาร์เรย์ความยาวคี่ที่เป็นไปได้ทั้งหมดจากอาร์เรย์ต้นทาง คำนวณผลรวมของพวกมัน และคืนค่าผลรวมทั้งหมด
สังเกตว่า โดยซับอาร์เรย์ เราหมายถึงลำดับย่อยที่ติดกันของอาร์เรย์ ไม่ใช่การจัดเรียงตัวเลขที่เป็นไปได้อย่างใดอย่างหนึ่ง
เช่น ถ้าอาร์เรย์อินพุตคือ:
const arr = [1, 2, 3, 4, 5];
ซับอาร์เรย์ความยาวคี่ที่เป็นไปได้ทั้งหมดจะเป็น:
[1], [2], [3], [4], [5], [1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3, 4, 5]
และผลรวมทั้งหมดของพวกมันจะเป็น:
const output = 57
ตัวอย่าง
const arr = [1, 2, 3, 4, 5];
const sumArray = (arr = []) => arr.reduce((a, b) => a + b);
const oddSum = (arr = []) => {
let len = 1;
let sum = 0;
const { length } = arr;
while(len <= length){
for(let i = 0; i + len <= length; i++){
sum += sumArray(arr.slice(i, i + len));
};
len += 2;
};
return sum;
};
console.log(oddSum(arr));
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ดังนี้:
57