Функция для сопоставления последовательных элементов в массиве
Для начала работы с кодом откройте Терминал/SSH и введите node
.
Эта функция сопоставляет каждый блок из n
последовательных элементов в массиве, используя заданную функцию fn
. Следуйте шагам:
- Используйте
Array.prototype.slice()
, чтобы получить новый массив arr
, из которого удалены первые n
элементов.
- Используйте
Array.prototype.map()
и Array.prototype.slice()
, чтобы применить fn
к каждому блоку из n
последовательных элементов в arr
.
Вот код:
const mapConsecutive = (arr, n, fn) =>
arr.slice(n - 1).map((v, i) => fn(arr.slice(i, i + n)));
Например, вы можете использовать mapConsecutive()
для сопоставления каждого блока из 3 последовательных элементов в массиве чисел, соединяя их дефисами:
mapConsecutive([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3, (x) => x.join("-"));
// ['1-2-3', '2-3-4', '3-4-5', '4-5-6', '5-6-7', '6-7-8', '7-8-9', '8-9-10'];