export = <T, U>(array: T[], callback: (item: T, index: number, arr: ReadonlyArray<T>) => U): U[] => {
  let i = -1;
  const resArr = [];
  const length = array.length;
  while (++i < length) {
    resArr.push(callback(array[i], i, array));
  }
  return resArr;
};
