From 141cf1b0469d0864d6f144af53c12c5a4defc1e1 Mon Sep 17 00:00:00 2001 From: "Rishi G." Date: Mon, 26 May 2025 14:57:33 +0200 Subject: [PATCH] lab solved --- index.js | 50 +++++++++++++++++++++++++++++++++++++++++++------- package.json | 5 ++++- 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 0f4b28b4..6f9c5607 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,53 @@ class SortedList { - constructor() {} + constructor() { + (this.items = []), (this.length = this.items.length); + } - add(item) {} + add(item) { + this.items.push(item); + this.items.sort((a, b) => a - b); + this.length = this.items.length; + } - get(pos) {} + get(pos) { + if (pos < this.length) { + return this.items[pos]; + } else { + throw new Error("OutOfBounds"); + } + } - max() {} + max() { + if (this.items.length === 0) { + throw new Error("EmptySortedList"); + } else { + return Math.max.apply(null, this.items); + } + } - min() {} + min() { + if (this.items.length === 0) { + throw new Error("EmptySortedList"); + } else { + return Math.min.apply(null, this.items); + } + } - sum() {} + sum() { + if (this.items.length === 0) { + return 0; + } else { + return this.items.reduce((acc, curr) => acc + curr); + } + } - avg() {} + avg() { + if (this.items.length === 0) { + throw new Error("EmptySortedList"); + } else { + return this.items.reduce((acc, curr) => acc + curr) / this.items.length; + } + } } module.exports = SortedList; diff --git a/package.json b/package.json index 3a5127ae..ea139dc1 100644 --- a/package.json +++ b/package.json @@ -19,5 +19,8 @@ "intro" ], "author": "fer@ironhack.com", - "license": "MIT" + "license": "MIT", + "dependencies": { + "mocha": "^11.5.0" + } }