-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArrayUtils.ts
More file actions
42 lines (35 loc) · 1.13 KB
/
ArrayUtils.ts
File metadata and controls
42 lines (35 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
export default class ArrayUtils {
public arrayHasItems = (arr: any) => {
return Array.isArray(arr) && arr.length > 0;
}
public removeItem = <T>(arr: T[], value: any): T[] => {
let i = 0;
while (i < arr.length) {
if (arr[i] === value) {
arr.splice(i, 1);
} else {
++i;
}
}
return arr;
};
public removeAtIndex = <T extends any>(
array: T[],
index: number
): T[] => {
return [...array.slice(0, index), ...array.slice(index + 1)];
};
public getUnique = <T>(arr: T[]): T[] => arr.filter((v, i, a) => a.indexOf(v) === i);
public getArrayOfSize = (size: number): any[] => [...Array(size)];
public getArrayOfLength = (length: number) => [...Array(length)].map((e, i) => i);
public getMinValue<T>(array: T[]) {
return array.reduce(function(prev, curr) {
return prev < curr ? prev : curr;
});
}
public getMaxValue<T>(array: T[]) {
return array.reduce(function(prev, curr) {
return prev > curr ? prev : curr;
});
}
}