export const flatten = (array: T[][]) => ( array.reduce((flatArray, innerArray) => [ ...flatArray, ...innerArray, ], [] as T[]) ); export const getItemsToEitherSideOfArrayIndex = ( array: T[], indexToFindItemsFor: number, ) => ( array.filter((value, index) => ( (index + 1) % array.length === indexToFindItemsFor || (index - 1 + array.length) % array.length === indexToFindItemsFor )) ); export const getItemAtOppositeSideOfArray = ( array: T[], index: number, ) => array[(index + array.length / 2) % array.length];