Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ซับอาร์เรย์ความยาวคี่ทั้งหมดที่เป็นไปได้ใน JavaScript

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