Cần viết hàm JavaScript nhận mảng số làm đối số đầu tiên và duy nhất. Hàm chọn tất cả mảng con có độ dài lẻ từ mảng gốc, tính tổng của chúng và trả về tổng tổng.
Lưu ý: mảng con nghĩa là dãy con liên tiếp của mảng, không phải tổ hợp tùy ý.
Ví dụ - Nếu mảng đầu vào:
const arr = [1, 2, 3, 4, 5];
Các mảng con độ dài lẻ:
[1], [2], [3], [4], [5], [1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3, 4, 5]
Tổng của chúng:
const output = 57
Ví dụ
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));
Kết quả
Điều này sẽ tạo ra đầu ra sau:
57