deadloop
@deadloop
Активно осваиваю PHP

Как сложить две элемента в массиве и выдать результат?

Есть массив с числами.
arr = [1,5,23,54,123,54]

нужно сложить каждые два числа и вывести результат:
1 + 5 = 6
23 + 54 = 77
и т.д.

Результат нужно вывести в в строку разделенные пробелами:
6 77 и т.д.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Посчитать суммы соседних элементов можно так:

const sums = arr.reduce((acc, n, i) => (
  (i & 1) || acc.push(0),
  acc[acc.length - 1] += n,
  acc
), []);

// или

const sums = arr.reduce(
  (acc, n, i) => (acc[i / 2 | 0] += n, acc),
  Array(Math.ceil(arr.length / 2)).fill(0)
);

// или

const sums = Array.from(
  { length: arr.length / 2 + arr.length % 2 },
  (n, i) => arr[i * 2] + (arr[i * 2 + 1] || 0)
);

// или

const sums = eval(`[${arr}]`.replace(/(\d+),(\d+)/g, '$1+$2'));

А собрать из массива строку так:

const result = sums.join(' ');

// или

const result = sums.reduce((acc, n) => acc + (acc && ' ') + n, '');

// или

const result = ''.concat(...sums.flatMap((n, i) => i ? [ ' ', n ] : n));

// или

const result = String(sums).replace(/,/g, ' ');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы