@itrocks/sorted-array
Version:
Array subclasses that remain continuously sorted on insert() or push() calls, featuring optimized includes() and indexOf()
38 lines (37 loc) • 1.28 kB
TypeScript
declare abstract class ASortedArray<T> extends Array<T> {
distinct: boolean;
constructor(...items: T[]);
abstract insert(item: T): number | undefined;
abstract isSorted(): boolean;
push(...items: T[]): number;
}
export declare class SortedArray<T> extends ASortedArray<T> {
#private;
includes(searchElement: T): boolean;
indexOf(searchElement: T): number;
insert(item: T): number | undefined;
isSorted(): boolean;
}
export declare class SortedArrayBy<T extends {
[index: number | string]: any;
}> extends ASortedArray<T> {
#private;
compareBy: number | string;
constructor(compareBy: number | string, ...items: T[]);
includes(searchElement: T): boolean;
indexOf(searchElement: any): number;
insert(item: any): number | undefined;
isSorted(): boolean;
sort(compareFn: (a: T, b: T) => number): this;
}
export declare class SortedArrayCompareFn<T> extends ASortedArray<T> {
#private;
compareFn: (a: T, b: T) => number;
constructor(compareFn: (a: T, b: T) => number, ...items: T[]);
includes(searchElement: T): boolean;
indexOf(searchElement: T): number;
insert(insert: T): number | undefined;
isSorted(): boolean;
sort(compareFn: (a: T, b: T) => number): this;
}
export {};