import { LinkedList } from './linkedlist'; const recurse = (acc: Array, item: T): Array => Array.isArray(item) ? item.reduce(recurse, acc) : [...acc, item]; export function flatten(array: Array): Array { return array.reduce((acc: Array, item: T) => recurse(acc, item), []); } export function arrayToRecord( array: Array, key: string ): Record { return array.reduce((record: Record, item: T) => { record[item[key]] = { ...item }; return record; }, {}); } export function arrayToLinkedList(array: Array): LinkedList { const linkedList = new LinkedList(); array.forEach((item, index) => linkedList.insertAt(item, index)); return linkedList; }