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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
43 changes: 43 additions & 0 deletions lib/averages.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
const total = (array) => {
return array.reduce((result, num) => {
result += num
return result
}, 0)
}

const mean = (array) => {
return total(array) / array.length
}

const median = (array) => {
return array.sort((a, b) => {
if (a > b) {
return -1
} else {
return 1
}
})[Math.round(array.length / 2)]
}

const mode = (array) => {
let occurance = array.reduce((result, num) => {
if (!result[num]) {
result[num] = 0
}
result[num]++
return result
}, {})
let greatestCount = 0
let mode
for(var num in occurance) {
if (occurance[num] > greatestCount) {
greatestCount = occurance[num]
mode = num
}
}
return mode
}



module.exports = [total, mean, median, mode]
10 changes: 10 additions & 0 deletions lib/factorial.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const factorial = (num) => {
if (num < 0) {return undefined}
let result = 1
for (var i = num; i > 0; i--) {
result *= i
}
return result
}

module.exports = factorial
22 changes: 22 additions & 0 deletions lib/guessing-game.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
class GuessingGame {
constructor(answer) {
this.answer = answer
this.guessed = false
}
guess(num) {
if (num === this.answer) {
this.guessed = true
return 'correct'
} else if (num > this.answer) {
return 'high'
} else if (num < this.answer) {
return 'low'
}
}
isSolved() {
return this.guessed
}
}


module.exports = GuessingGame
16 changes: 16 additions & 0 deletions lib/longest-string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const longestString = (array) => {
if (!Array.isArray(array) || !array.length) {
return "null"
} else {
var longest = ""
array.forEach((word) => {
if (word.length > longest.length) {
longest = word
}
})
return longest
}
}


module.exports = longestString
21 changes: 21 additions & 0 deletions lib/rectangles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const area = (rectangle) => {
return rectangle.height * rectangle.width
}

const perimeter = (rectangle) => {
return rectangle.height * 2 + rectangle.width * 2
}

const diagonal = (rectangle) => {
return (rectangle.height ** 2 + rectangle.width ** 2) ** (1/2)
}

const isSquare = (rectangle) => {
if (rectangle.height === rectangle.width) {
return true
} else {
return false
}
}

module.exports = [area, perimeter, diagonal, isSquare]
21 changes: 21 additions & 0 deletions lib/times-tables.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const rawTimesTable = (num) => {
var numbers = []
for (var i = 0; i < num; i++) {
numbers.push(i + 1)
}
var table = numbers.map((numA) => {
return numbers.map((numB) => {
return numA * numB
})
})
return table
}

const timesTable = (num) => {
var table = rawTimesTable(num).map((row) => {
return row.join(" ")
})
console.log(table.join("\n"))
}

module.exports = [rawTimesTable, timesTable]
20 changes: 20 additions & 0 deletions lib/triangles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const isTriangle = (legOne, legTwo, legThree) => {
let sides = [legOne, legTwo, legThree].sort((a, b) => {
if (a > b) {
return -1
} else {
return 1
}
})
if (sides.some(leg => {return leg < 1})) {
return false
} else if (sides.every(leg => {return leg === legOne})) {
return true
} else if (sides[0] % 5 === 0 && sides[1] % 4 === 0 && sides[2] % 3 === 0) {
return true
} else {
return false
}
}

module.exports = isTriangle
24 changes: 24 additions & 0 deletions node_modules/assertion-error/History.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 41 additions & 0 deletions node_modules/assertion-error/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions node_modules/assertion-error/index.d.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

116 changes: 116 additions & 0 deletions node_modules/assertion-error/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading