add LimitedArray
This commit is contained in:
@ -6,3 +6,4 @@ export * from './lik.looptracker'
|
||||
export * from './lik.objectmap'
|
||||
export * from './lik.observablemap'
|
||||
export * from './lik.stringmap'
|
||||
export * from './lik.limitedarray'
|
||||
|
43
ts/lik.limitedarray.ts
Normal file
43
ts/lik.limitedarray.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import * as plugins from './lik.plugins'
|
||||
|
||||
export class LimitedArray<T> {
|
||||
array: T[] = []
|
||||
arrayLimit: number
|
||||
constructor(limitArg: number) {
|
||||
this.arrayLimit = limitArg
|
||||
}
|
||||
|
||||
addOne (objectArg: T) {
|
||||
this.array.unshift(objectArg)
|
||||
if (this.array.length > this.arrayLimit) {
|
||||
this.array.length = this.arrayLimit
|
||||
}
|
||||
}
|
||||
|
||||
addMany (objectArrayArg: T[]) {
|
||||
for (let objectArg of objectArrayArg) {
|
||||
this.addOne(objectArg)
|
||||
}
|
||||
}
|
||||
|
||||
setLimit (limitArg: number) {
|
||||
this.arrayLimit = limitArg
|
||||
if (this.array.length > this.arrayLimit) {
|
||||
this.array.length = this.arrayLimit
|
||||
}
|
||||
}
|
||||
|
||||
getAverage ():number {
|
||||
if (typeof this.array[0] === 'number') {
|
||||
let sum = 0
|
||||
for (let localNumber of this.array) {
|
||||
let localNumberAny: any = localNumber
|
||||
sum = sum + localNumberAny
|
||||
}
|
||||
return sum / this.array.length
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -100,7 +100,7 @@ export class Stringmap {
|
||||
)
|
||||
this.notifyTrigger()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* notifies triggers
|
||||
*/
|
||||
|
Reference in New Issue
Block a user