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
61 changes: 34 additions & 27 deletions problems/problem1.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,34 @@
var assert = require('assert');

// we need 5 test cases. I provided 1 input
let inputs = [
""
]

let outputs = [

]

// Make this function return the first letter of the string that is passed to it. If the string does not have a first letter, return undefined
function f(str) {

}

function runTest(i) {
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);
var assert = require('assert');

// we need 5 test cases. I provided 1 input
let inputs = [
"",
"abc",
"123",
"'&?",
{}
]

let outputs = [
undefined,
"a",
"1",
"'",
undefined
]

// Make this function return the first letter of the string that is passed to it.
// If the string does not have a first letter, return undefined.
const f = str => str.length > 0 ? str[0] : undefined;

function runTest(i) {
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);
95 changes: 60 additions & 35 deletions problems/problem10.js
Original file line number Diff line number Diff line change
@@ -1,35 +1,60 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [

]

let outputs = [

]

/*
Make this function return the input string, capitalized. You must use a for loop. For example:

f("hello world"); // Hello World
f("ALL YOUR BASE ARE BELONG"); // All Your Base Are Belong

*/
function f(str) {

}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

var assert = require('assert');

// we need 5 test cases.
let inputs = [
"hello WORLD",
"YOU have NO chance TO survive MAKE your TIME",
{},
[],
0
]

let outputs = [
"Hello World",
"You Have No Chance To Survive Make Your Time",
undefined,
undefined,
undefined
]

/*
Make this function return the input string, capitalized.
You must use a for loop. For example:

f("hello world"); // Hello World
f("ALL YOUR BASE ARE BELONG"); // All Your Base Are Belong

*/

// Gotta use a for loop... again. :(

const f = str => {
if (typeof str === "string") {
if (str.includes(" ")) {
str = str.toLowerCase().split(" "); // 'str' now "cast" (sic) as an array.
const resArr = [];
for (i = 0; i < str.length; i++) {
resArr.push(str[i][0].toUpperCase() + str[i].slice(1, str[i].length));
}
return resArr.join(" ");
} else {
return str.length > 0 ? str[0].toUpperCase() + str.slice(1, str.length - 1).toLowerCase() : "" ;
}
} else {
return undefined;
}
}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

74 changes: 43 additions & 31 deletions problems/problem11.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,43 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [

]

let outputs = [

]

/*
Make this function return the sum of all the numbers in the input array. If any element in the array is not a number, skip it. If the array is empty, return zero.
*/
function f(arr) {

}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

var assert = require('assert');

// we need 5 test cases.
let inputs = [
[1, 5, 3, 7, 9, "c", {}, [], 24, 1],
[],
["a", 2, null, "c", 0, [], 45, 16, 0],
["a", "b", "c", undefined, null, {}, [], "z"],
{}
]

let outputs = [
50,
0,
63,
0,
0
]

/*
Make this function return the sum of all the numbers in the input array.
If any element in the array is not a number, skip it.
If the array is empty, return zero.
*/

// No mention of other input types having to return "undefined"; so returning "0" in those instances, too (as seen in the last test case).

const f = arr => {
return Array.isArray(arr) || arr.length > 0 ? arr.reduce((t, c) => { return typeof c !== "number" ? t + 0 : t + c }, 0) : 0;
}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);
81 changes: 43 additions & 38 deletions problems/problem12.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,43 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [

]

let outputs = [

]

/*
Make this function return the elements that are unique to array1 and array2.
If there are no unique elements return an empty array.
If the inputs are anything other than arrays, return undefined.
For example:

uniqueElements([0,1,2,3], [1,3,4,5]); // [0,4,5]
uniqueElements([1,2,3], [1,2,3]); // []
uniqueElements(2,3); // undefined, not arrays
*/
function f(arr1, arr2) {

}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

var assert = require('assert');

// we need 5 test cases.
let inputs = [
[[0, 1, 2, 3], [1, 3, 4, 5]],
["hello", []],
[{}],
[(2, 3)],
[1, []]
]

let outputs = [
[0, 2, 4, 5],
undefined,
undefined,
undefined,
undefined
]

/*
Make this function return the elements that are unique to array1 and array2.
If there are no unique elements return an empty array.
If the inputs are anything other than arrays, return undefined.
For example:

uniqueElements([0,1,2,3], [1,3,4,5]); // [0,4,5]
uniqueElements([1,2,3], [1,2,3]); // []
uniqueElements(2,3); // undefined, not arrays
*/
const f = (arr1, arr2) => !Array.isArray(arr1) || !Array.isArray(arr2) ? undefined : arr1.concat(arr2).filter(e => arr1.includes(e) && !arr2.includes(e) || !arr1.includes(e) && arr2.includes(e));

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(...inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);
74 changes: 40 additions & 34 deletions problems/problem13.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,40 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [

]

let outputs = [

]

/*
Make this function return true if the input string is a palindrome, and false otherwise. A palindrome is simply a string that is the same if you reverse it.

RADAR -> Yes
JAVASCRIPT -> No
*/
function f(str) {

}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

var assert = require('assert');

// we need 5 test cases.
let inputs = [
"A Santa Lived As a Devil At NASA",
"Laravel",
0,
{},
[]
]

let outputs = [
true,
false,
undefined,
undefined,
undefined
]

/*
Make this function return true if the input string is a palindrome, and false otherwise.
A palindrome is simply a string that is the same if you reverse it.

RADAR -> Yes
JAVASCRIPT -> No
*/
const f = str => typeof str === 'string' ? str.replace(/\s/g, '').toLowerCase() === str.replace(/\s/g, '').toLowerCase().split('').reverse().join('') : undefined;

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);
Loading