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

ผลรวมของทุกซับอาร์เรย์ความยาวคี่ใน JavaScript

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

ตัวอย่าง

ถ้าอาร์เรย์นำเข้าคือ:

const arr = [1, 2, 3];

ผลลัพธ์ควรเป็น:

const output = 12;

เพราะซับอาร์เรย์ที่ต้องการคือ [1], [2], [3], [1, 2, 3]

ตัวอย่างโค้ด

const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3, 4, 5, 6];
const sumOfOddLengthSubarrays = (arr = []) => {
  let res = 0;
  for(let i = 0; i < arr.length; i++) {
    let sum = 0;
    for(let j = i; j < arr.length; j++) {
      sum += arr[j];
      if (((j - i + 1) & 1) === 0) {
        continue;
      }
      res += sum;
    }
  }
  return res;
};
console.log(sumOfOddLengthSubarrays(arr1));
console.log(sumOfOddLengthSubarrays(arr2));

ผลลัพธ์

12 98