所有可能的奇数长度子数组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