From 9d172c77b28c95384f87b08b8bf411105839a6a5 Mon Sep 17 00:00:00 2001 From: Armando Date: Mon, 9 Mar 2026 16:07:56 +0100 Subject: [PATCH] Lab-Intro-Node --- index.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++------ package.json | 5 ++++- 2 files changed, 57 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 0f4b28b4..5cc0fdab 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,63 @@ class SortedList { - constructor() {} + constructor() { + this.items = [] + this.length = this.items.length + } - add(item) {} + add(item) { + this.items.push(item) - get(pos) {} + this.items.sort((a, b) => a - b) - max() {} + this.length = this.items.length + } - min() {} + get(pos) { + if(pos > this.items.length){ + throw new Error("OutOfBounds"); + } + return this.items[pos] + } - sum() {} + max() { + if(this.items.length === 0){ + throw new Error("EmptySortedList"); + } + return this.items[this.items.length - 1] + } - avg() {} + min() { + if(this.items.length === 0){ + throw new Error("EmptySortedList"); + } + return this.items[0] + } + + sum() { + if(this.items.length === 0){ + return 0; + } + + let sum = 0 + this.items.forEach((item) => { + sum += item + }) + + return sum + } + + avg() { + if(this.items.length === 0){ + throw new Error("EmptySortedList"); + } + + let sum = 0 + this.items.forEach((item) => { + sum += item + }) + + return sum / this.items.length + } } module.exports = SortedList; diff --git a/package.json b/package.json index 3a5127ae..f2ff4434 100644 --- a/package.json +++ b/package.json @@ -19,5 +19,8 @@ "intro" ], "author": "fer@ironhack.com", - "license": "MIT" + "license": "MIT", + "dependencies": { + "mocha": "^11.7.5" + } }