diff --git a/index.js b/index.js index 0f4b28b4..d7fa55ea 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,44 @@ class SortedList { - constructor() {} + constructor() { + this.items=[] + this.length=this.items.length + + } - add(item) {} + add(item) { + let i = 0; + while (i < this.items.length && this.items[i] < item) i++; + this.items.splice(i, 0, item); + this.length = this.items.length; + } + + - get(pos) {} - max() {} + get(pos) { + if (pos < 0 || pos >= this.length) throw new Error("OutOfBounds"); + return this.items[pos]; + } +max() { + if (this.length === 0) throw new Error("EmptySortedList"); + return Math.max(...this.items); +} - min() {} + min() { + if (this.length === 0) throw new Error("EmptySortedList"); + return Math.min(...this.items); + } - sum() {} + sum() { + if (this.length === 0) return 0; + return this.items.reduce((acc, val) => acc + val, 0); + } - avg() {} + avg() { + if (this.length === 0) throw new Error("EmptySortedList"); + + return this.items.reduce((acc, val) => acc + val, 0) / this.length; + } } module.exports = SortedList; diff --git a/package.json b/package.json index 3a5127ae..701007ec 100644 --- a/package.json +++ b/package.json @@ -19,5 +19,8 @@ "intro" ], "author": "fer@ironhack.com", - "license": "MIT" + "license": "MIT", + "dependencies": { + "mocha": "^11.7.6" + } }