// Тут 12 случайных чисел
const numbers = [0, 1, 5, 0, 4, 1, 3, 6, 0, 1, 5, 4]
0 + 1 = 1, 5 + 0 = 5, 4 + 1 = 5
// И массив становится таким, где уже 6 чисел:
numbers = [1, 5, 5, 9, 1, 9]
const result = arr.reduce((acc, n, i) => (
(i & 1) || acc.push(0),
acc[~-acc.length] += n,
acc
), []);
function* chunked(data, chunkSize) {
const iter = data[Symbol.iterator]();
for (let chunk = [], n; !n?.done && (n = iter.next());) {
if (!n.done) {
chunk.push(n.value);
}
if (chunk.length === chunkSize || (n.done && chunk.length)) {
yield chunk;
chunk = [];
}
}
}
function sum(data, val = n => n) {
const getVal = val instanceof Function ? val : n => n[val];
let result = 0;
for (const n of data) {
result += getVal(n);
}
return result;
}
const result = Array.from(chunked(arr, 2), n => sum(n));