add LimitedArray
This commit is contained in:
parent
38884ff59c
commit
e59205490b
1
dist/index.d.ts
vendored
1
dist/index.d.ts
vendored
@ -2,3 +2,4 @@ export * from './lik.looptracker';
|
||||
export * from './lik.objectmap';
|
||||
export * from './lik.observablemap';
|
||||
export * from './lik.stringmap';
|
||||
export * from './lik.limitedarray';
|
||||
|
3
dist/index.js
vendored
3
dist/index.js
vendored
@ -8,4 +8,5 @@ __export(require("./lik.looptracker"));
|
||||
__export(require("./lik.objectmap"));
|
||||
__export(require("./lik.observablemap"));
|
||||
__export(require("./lik.stringmap"));
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLGlCQUFpQjtBQUVqQix1Q0FBaUM7QUFDakMscUNBQStCO0FBQy9CLHlDQUFtQztBQUNuQyxxQ0FBK0IifQ==
|
||||
__export(require("./lik.limitedarray"));
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLGlCQUFpQjtBQUVqQix1Q0FBaUM7QUFDakMscUNBQStCO0FBQy9CLHlDQUFtQztBQUNuQyxxQ0FBK0I7QUFDL0Isd0NBQWtDIn0=
|
9
dist/lik.limitedarray.d.ts
vendored
Normal file
9
dist/lik.limitedarray.d.ts
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
export declare class LimitedArray<T> {
|
||||
array: T[];
|
||||
arrayLimit: number;
|
||||
constructor(limitArg: number);
|
||||
addOne(objectArg: T): void;
|
||||
addMany(objectArrayArg: T[]): void;
|
||||
setLimit(limitArg: number): void;
|
||||
getAverage(): number;
|
||||
}
|
40
dist/lik.limitedarray.js
vendored
Normal file
40
dist/lik.limitedarray.js
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class LimitedArray {
|
||||
constructor(limitArg) {
|
||||
this.array = [];
|
||||
this.arrayLimit = limitArg;
|
||||
}
|
||||
addOne(objectArg) {
|
||||
this.array.unshift(objectArg);
|
||||
if (this.array.length > this.arrayLimit) {
|
||||
this.array.length = this.arrayLimit;
|
||||
}
|
||||
}
|
||||
addMany(objectArrayArg) {
|
||||
for (let objectArg of objectArrayArg) {
|
||||
this.addOne(objectArg);
|
||||
}
|
||||
}
|
||||
setLimit(limitArg) {
|
||||
this.arrayLimit = limitArg;
|
||||
if (this.array.length > this.arrayLimit) {
|
||||
this.array.length = this.arrayLimit;
|
||||
}
|
||||
}
|
||||
getAverage() {
|
||||
if (typeof this.array[0] === 'number') {
|
||||
let sum = 0;
|
||||
for (let localNumber of this.array) {
|
||||
let localNumberAny = localNumber;
|
||||
sum = sum + localNumberAny;
|
||||
}
|
||||
return sum / this.array.length;
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.LimitedArray = LimitedArray;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLmxpbWl0ZWRhcnJheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xpay5saW1pdGVkYXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQTtJQUdFLFlBQVksUUFBZ0I7UUFGNUIsVUFBSyxHQUFRLEVBQUUsQ0FBQTtRQUdiLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFBO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUUsU0FBWTtRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUM3QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFFLGNBQW1CO1FBQzFCLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBRSxRQUFnQjtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQTtRQUMxQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQTtZQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLGNBQWMsR0FBUSxXQUFXLENBQUE7Z0JBQ3JDLEdBQUcsR0FBRyxHQUFHLEdBQUcsY0FBYyxDQUFBO1lBQzVCLENBQUM7WUFDRCxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFBO1FBQ2hDLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztDQUVGO0FBeENELG9DQXdDQyJ9
|
17
test/test.limitedarray.ts
Normal file
17
test/test.limitedarray.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import { tap, expect } from 'tapbundle'
|
||||
|
||||
import { LimitedArray } from '../ts/index'
|
||||
|
||||
let testLimitedArray: LimitedArray<string>
|
||||
|
||||
tap.test('should create a LimitedArray', async () => {
|
||||
testLimitedArray = new LimitedArray(6)
|
||||
expect(testLimitedArray).to.be.instanceof(LimitedArray)
|
||||
})
|
||||
|
||||
tap.test('should never be longer than the set length', async () => {
|
||||
testLimitedArray.addMany(['hi','this','is','quite','a','long','string',':)'])
|
||||
expect(testLimitedArray.array.length).to.be.lessThan(7)
|
||||
})
|
||||
|
||||
tap.start()
|
@ -5,7 +5,7 @@ import * as rx from 'rxjs/Rx'
|
||||
import * as smartq from 'smartq'
|
||||
|
||||
// import the module
|
||||
import lik = require('../ts/index')
|
||||
import * as lik from '../ts/index'
|
||||
|
||||
let object1 = {}
|
||||
let object2 = {}
|
||||
|
@ -5,7 +5,7 @@ import * as rx from 'rxjs/Rx'
|
||||
import * as smartq from 'smartq'
|
||||
|
||||
// import the module
|
||||
import lik = require('../ts/index')
|
||||
import * as lik from '../ts/index'
|
||||
|
||||
// Objectmap
|
||||
interface ITestObject {
|
||||
|
@ -5,7 +5,7 @@ import * as rx from 'rxjs/Rx'
|
||||
import * as smartq from 'smartq'
|
||||
|
||||
// import the module
|
||||
import lik = require('../ts/index')
|
||||
import * as lik from '../ts/index'
|
||||
|
||||
let testObservablemap: lik.Observablemap
|
||||
let testObservable1: rx.Observable<any>
|
||||
|
@ -5,7 +5,7 @@ import * as rx from 'rxjs/Rx'
|
||||
import * as smartq from 'smartq'
|
||||
|
||||
// import the module
|
||||
import lik = require('../ts/index')
|
||||
import * as lik from '../ts/index'
|
||||
|
||||
// testData
|
||||
let testStringmap: lik.Stringmap
|
||||
|
@ -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
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user