Как я могу использовать только map
, reduce
или filter
или любой функциональный способ создания пользовательской итерации в массиве?
Скажем, я хочу сопоставить массив с другим массивом, который содержит сумму каждого из трех смежных элементов в исходном массиве:
var source = [1, 2, 3, 4, 6, 7, 8] // to [6, 17, 8]
Или создайте ведро из двух элементов:
var source = [1, 2, 3, 4, 5, 6, 7] // to [[1, 2], [3, 4], [5, 6], [7]]
Для второго я имею следующее, но это не выглядит очень функциональным, поскольку я обращаюсь к массиву по индексу:
function* pairMap(data) {
yield* data.map((item, index) => {
if (index > 0) {
return [data[index - 1], item];
}
});
}
Я заинтересован в функциональном способе этого.