Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

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


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอินพุตแรกและอินพุตเดียว

ฟังก์ชันจะเลือกอาร์เรย์ย่อยที่มีความยาวคี่ที่เป็นไปได้ทั้งหมดจากอาร์เรย์ดั้งเดิม คำนวณผลรวมและส่งคืนผลรวมทั้งหมด

โปรดทราบว่าโดย subarray เราหมายถึงลำดับที่ต่อเนื่องกันของอาร์เรย์ และไม่ใช่การรวมตัวเลขใดๆ ที่เป็นไปได้

ตัวอย่างเช่น -

หากอาร์เรย์อินพุตเป็น −

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