30秒学会 JavaScript 片段 · 2023年11月20日

30秒学会 JavaScript 片段 – Map consecutive elements

Maps each block of n consecutive elements using the given function, fn.

  • Use Array.prototype.slice() to get arr with n elements removed from the left.
  • Use Array.prototype.map() and Array.prototype.slice() to apply fn to each block of n consecutive elements in arr.

代码实现

const mapConsecutive = (arr, n, fn) =>
  arr.slice(n - 1).map((v, i) => fn(arr.slice(i, i + n)));

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'];

翻译自:https://www.30secondsofcode.org/js/s/map-consecutive-elements