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