Extract "n" elements from array

by maxell4o

HTML

<!--
(1) 1 1 [1] 1 1
(2) 1 2 [1] 2 1 | 2 1 [2] 1 2
(3) 2 3 [1] 2 3 | 3 1 [2] 3 1 | 1 2 [3] 1 2
(4) 3 4 [1] 2 3 | 4 1 [2] 3 4 | 1 2 [3] 4 1 | 2 3 [4] 1 2
(5) 4 5 [1] 2 3 | 5 1 [2] 3 4 | 1 2 [3] 4 5 | 2 3 [4] 5 1 | 3 4 [5] 1 2
-->

JavaScript

let items = [1, 2, 3];


const getItems = (items, index) => {
	let temp = [];
  if (index > -1) {
    for (let i = index - 2; i < index; i++) {
      const cIndex = i % items.length;
      temp.push(items[cIndex >= 0 ? cIndex : items.length + cIndex]);
    }

    for (let i = index; i < index + 3; i++) {
      const cIndex = i % items.length;
      temp.push(items[cIndex]);
    }
  }
  return temp;
}

const logResults = (items) => {
	let results = [];
  items.forEach((v, i) => results.push(getItems(items, i)));
  console.log(...results)
}

logResults([1]);
logResults([1,2]);
logResults([1,2,3]);
logResults([1,2,3,4]);
logResults([1,2,3,4,5]);