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
14 changes: 8 additions & 6 deletions src/challenge.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// 🌶️🌶️🌶️ Extra

import { isTemplateLiteralToken } from "typescript";

// `logger` function that:
// - Accepts "array" parameter which holds elements of the same type
// - log every element in an array
Expand All @@ -8,7 +10,7 @@
// logger<number>([1, 2, 3]);
// logger<number | string>([1, 2, 3, "one", "two", "three"]);
function logger<T>(array: T[]): void {
// write your code here...
array.forEach((element) => console.log(element));
}

// `toCelsius` function that:
Expand All @@ -18,9 +20,7 @@ function logger<T>(array: T[]): void {
// example:
// toCelsius([32, 68, 100, 212]); // => [0, 20, 37.7778, 100]
function toCelsius(temperatures: number[]): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return temperatures.map((f) => (f - 32) * (5 / 9));
}

// `hottestDays` function that:
Expand All @@ -33,15 +33,17 @@ function toCelsius(temperatures: number[]): number[] {
function hottestDays(temperatures: number[], threshold: number): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return temperatures.filter((temp) => temp > threshold);
}

// `logHottestDays` function that:
// - Accepts "temperatures" parameter of type "number[]", representing temperature values in Fahrenheit.
// - Accepts "threshold" parameter of type "number"
// - Log temperatures that exceed the threshold to the console IN DEGREES CELSIUS (hint: you can combine all previous functions)
function logHottestDays(temperatures: number[], threshold: number): void {
// write your code here...
const hotTemps = hottestDays(temperatures, threshold);
const hotTempsInCelsius = toCelsius(hotTemps);
logger(hotTempsInCelsius);
}

export { logger, toCelsius, hottestDays, logHottestDays };
8 changes: 4 additions & 4 deletions src/filtering.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ const numbers = [10, 13, 20, 25, 38, 35, 40];
// greaterThanTwentyFive(numbers); // => [38, 35, 40]
function greaterThanTwentyFive(numbers: number[]): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return numbers.filter((num) => num >= 25);
// replace empty array with what you see is fit
}

// `divisibleByFive` function that:
Expand All @@ -22,8 +22,8 @@ function greaterThanTwentyFive(numbers: number[]): number[] {
// divisibleByFive(numbers); // => [10, 20, 25, 35, 40]
function divisibleByFive(numbers: number[]): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return numbers.filter((num) => num % 5 === 0);
// replace empty array with what you see is fit
}

export { greaterThanTwentyFive, divisibleByFive };
6 changes: 2 additions & 4 deletions src/mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ const numbers = [10, 13, 20, 25, 38, 35, 40];
// example:
// squaredNumbers(numbers); // => [100, 169, 400, 625, 1444, 1225, 1600]
function squaredNumbers(numbers: number[]): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return numbers.map((num) => num * num);
}

// `doubledNumbers` function that:
Expand All @@ -23,7 +21,7 @@ function squaredNumbers(numbers: number[]): number[] {
function doubledNumbers(numbers: number[]): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return numbers.map((num) => num * 2);
}

export { squaredNumbers, doubledNumbers };
8 changes: 2 additions & 6 deletions src/mapping_filtering.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ const numbers = [10, 13, 20, 25, 38, 35, 40];
// example:
// filteredAndSquared(numbers); // => [400, 625, 1444, 1225, 1600]
function filteredAndSquared(numbers: number[]): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return numbers.filter((num) => num >= 20).map((num) => num * num);
}

// `filteredAndTripled` function that:
Expand All @@ -21,9 +19,7 @@ function filteredAndSquared(numbers: number[]): number[] {
// example:
// filteredAndTripled(numbers); // => [30, 60, 75, 105, 120]
function filteredAndTripled(numbers: number[]): number[] {
// write your code here...

return []; // replace empty array with what you see is fit
return numbers.filter((num) => num % 5 === 0).map((num) => num * 3);
}

export { filteredAndSquared, filteredAndTripled };