Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 52 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,62 @@
class SortedList {
constructor() {}
constructor() {
this.items = [];
this.length = 0;
}

add(item)
{
// Add the item and keep the list sorted
this.items.push(item);
this.items.sort((a, b) => a - b);
// Update the length
this.length = this.items.length;
}


get(pos) {
// Check if pos is out of bounds
if (pos < 0 || pos >= this.length) {
throw new Error('OutOfBounds');
}
return this.items[pos];
}

max() {
// If the list is empty, throw an error
if (this.length === 0) {

add(item) {}
throw new Error('EmptySortedList');
}
// Return the last element (highest value since it's sorted)
return this.items[this.length - 1];
}

get(pos) {}
min() {
// If the list is empty, throw an error
if (this.length === 0) {
throw new Error('EmptySortedList');
}
// Return the first element (lowest value since it's sorted)
return this.items[0];
}

max() {}

min() {}
sum() {
// Calculate the sum using reduce
return this.items.reduce((acc, curr) => acc + curr, 0);
}

sum() {}
avg()
{
// If the list is empty, throw an error
if (this.length === 0) {
throw new Error('EmptySortedList');
}

avg() {}
// Return the average by dividing the sum by the length
return this.sum() / this.length;
}
}

module.exports = SortedList;
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,8 @@
"intro"
],
"author": "[email protected]",
"license": "MIT"
"license": "MIT",
"dependencies": {
"mocha": "^10.8.2"
}
}