X Tutup
/** @noSelfInFile */ import { __TS__Iterator } from "./Iterator"; function arrayLikeStep(this: ArrayLike, index: number): LuaMultiReturn<[number, unknown] | []> { index += 1; if (index > this.length) return $multi(); return $multi(index, this[index]); } const arrayLikeIterator: ( this: void, arr: ArrayLike | Iterable ) => LuaIterable> = ((arr: any) => { if (typeof arr.length === "number") return $multi(arrayLikeStep, arr, 0); return __TS__Iterator(arr); }) as any; export function __TS__ArrayFrom( this: void, arrayLike: ArrayLike | Iterable, mapFn?: (this: unknown, element: unknown, index: number) => unknown, thisArg?: unknown ): unknown[] { const result = []; if (mapFn === undefined) { for (const [, v] of arrayLikeIterator(arrayLike)) { result.push(v); } } else { let i = 0; for (const [, v] of arrayLikeIterator(arrayLike)) { result.push(mapFn.call(thisArg, v, i++)); } } return result; }
X Tutup