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

const assert = require('assert');
// we need 5 test cases. I provided 1 input
let inputs = [
""
]
let inputs = ["","abc","231","orange","apple","google"]

let outputs = [

]
let outputs = [undefined,"a","2","o","a","g"]

// 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
// Make this function return the first character of the string that is passed to it. If the string does not have a first letter, return undefined
function f(str) {

if (str.length == 0) {
return undefined;
}
return str[0];
}

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

runTest(0);
Expand Down
11 changes: 7 additions & 4 deletions problems/problem10.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
var assert = require('assert');

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

let inputs = ["lol","i tried","this is good","uppercase","lowercase"
]

let outputs = [
let outputs = ["Lol","I Tried","This Is Good","Uppercase","Lowercase"

]

Expand All @@ -17,7 +16,11 @@ f("ALL YOUR BASE ARE BELONG"); // All Your Base Are Belong

*/
function f(str) {

var splitStr = str.toLowerCase().split(' ');
for (var i = 0; i < splitStr.length; i++) {
splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);
}
return splitStr.join(' ');
}

function runTest(i) {
Expand Down
20 changes: 12 additions & 8 deletions problems/problem11.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
var assert = require('assert');

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

]
let inputs = [[1,2,3],[3,4,2,"x"],[],["12",21,2],["",""]]

let outputs = [

]
let outputs = [6,9,0,23,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.
*/
function f(arr) {

var sum = 0;
for (var i = 0; i < arr.length; i++) {
if (typeof arr[i] == 'number') {
sum += arr[i];
} else if (arr.length === 0) {
return 0;
}
}
return sum;
}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
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);
Expand Down
39 changes: 25 additions & 14 deletions problems/problem12.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
var assert = require('assert');

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

]
let inputs = [ [[0,1,2,3],[1,3,4,5]] ];

let outputs = [

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

/*
Make this function return the elements that are unique to array1 and array2.
Expand All @@ -20,19 +16,34 @@ uniqueElements([1,2,3], [1,2,3]); // []
uniqueElements(2,3); // undefined, not arrays
*/
function f(arr1, arr2) {

}
var newArray = [];
var found = false;
for( var i=0; i < arr1.length; i++){
found = false;

for (var j=0; j< arr2.length; j++){
if(arr1[i] === arr2[j]){
found = true;
}
}
if(found === false){
newArray.push(arr1[i]);
}
}
return newArray;

}

function uniqueElements(arr1,arr2){
return [].concat(f(arr1,arr2),f(arr2,arr1));
}

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

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

20 changes: 14 additions & 6 deletions problems/problem13.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [
let inputs = ["laval","radar","montreal","javascript","testing"

]

let outputs = [

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

/*
Expand All @@ -16,11 +15,20 @@ RADAR -> Yes
JAVASCRIPT -> No
*/
function f(str) {

var reverse = "";
for (var i = str.length - 1; i >= 0; i--) {
reverse += str[i];
}
if (str === reverse) {
return true;
} else {
return false;
}

}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
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);
Expand Down
11 changes: 10 additions & 1 deletion problems/problem14.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,16 @@ Lorem ipsumos dolor sit amet consectetur
even though there is a space before the a in adipisicing
*/
function f(str) {

var n = Math.floor(str.length / 40);
var newStr = str.split('');
for (var i = 1; i <= n; i++) {
if (newStr[i * 40] !== ' ') {
newStr.splice(i * 40, 0, '\n');

}
else if (newStr[i * 40] == ' ') { newStr.splice(i * 40, 1, '\n'); }
}
return newStr.join('');
}

function runTest(i) {
Expand Down
14 changes: 7 additions & 7 deletions problems/problem2.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [
let inputs = ["hello","google","great","123",""]

]

let outputs = [

]
let outputs = ["o","e","t","3",undefined]

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

if(str.length == 0){
return undefined;
}
return str[str.length - 1];

}

function runTest(i) {
Expand Down
19 changes: 9 additions & 10 deletions problems/problem3.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
var assert = require('assert');
const assert = require('assert');

// we need 7 test cases. I've provided 2.
let inputs = [
[2, 4],
[-3, 3]
]
let inputs = [[2, 4], ["a","b"], [2,"a"],[-3,3],[4,5],[10,21],[3,4]]

let outputs = [
6,
0
]
let outputs = [6,undefined,undefined,0,9,31,7]

/*
Make this function return the sum of the two numbers that are passed to it. If one of the numbers is not passed, or if anything other than numbers are passed, return undefined.
*/
function f(x, y) {
function f(array) {
var total = array[0] + array[1];
if( typeof total != 'number' ){
return undefined;
}
return total;

}

Expand Down
23 changes: 19 additions & 4 deletions problems/problem4.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
var assert = require('assert');
const assert = require('assert');

// we need 8 test cases. I've provided the first 2
let inputs = [
["hello", 4],
["", 2]
["hef", 2],
["", 1],
["absolutely", 0],
["incredible", 3],
["decodemtl", 5],
["spotify", 2],
["javascript", 2]
]

let outputs = [
"o",
undefined
"f",
undefined,
"a",
"r",
"e",
"o",
"v"
]

/*
Expand All @@ -21,7 +33,10 @@ f("abc", 0); // a

*/
function f(str, index) {

if(str[index] == null){
return undefined;
}
return str[index];
}

function runTest(i) {
Expand Down
17 changes: 9 additions & 8 deletions problems/problem5.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [
[2, 7]
]
let inputs = [[2, 7], ["a","b"], [2,"a"],[-3,3],[4,5]]

let outputs = [
14
]
let outputs = [14,undefined,undefined,-9,20]

/*
Make this function return the product of the two numbers that are passed to it. If one of the numbers is not passed, or if anything other than numbers are passed, return undefined.
*/
function f(x, y) {

function f(array) {
var total = array[0] * array[1];
if(isNaN(total)){
return undefined;
}else{
return total;
}
}

function runTest(i) {
Expand Down
25 changes: 20 additions & 5 deletions problems/problem6.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,20 @@ var assert = require('assert');
// we need 6 test cases.
let inputs = [
["add", 10, 20],
["chair", 20, 10]
["chair", 20, 10],
["mult",23,120],
["derp",23,120],
["add",23,120],
["div",120,120]
]

let outputs = [
30
30,
undefined,
2760,
undefined,
143,
undefined
]

/*
Expand All @@ -22,13 +31,19 @@ f("spoof", 10, 10); // undefined

*/
function f(operation, firstArgument, secondArgument) {

if (operation == "add"){
return firstArgument + secondArgument;
}else if (operation == "mult"){
return firstArgument * secondArgument;
}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]);
var actual = f(...inputs[i]);
assert.deepEqual(actual, expected);
}

Expand All @@ -37,4 +52,4 @@ runTest(1);
runTest(2);
runTest(3);
runTest(4);
runTest(5);
runTest(5);
Loading