Published
Edited
Sep 24, 2019
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// DECLARAING A FUNCTION
function myFunctionThatCalculatesASum( parameter1, parameter2 ) {
// CODE BLOCK: do stuff in here
var sumOfMyParamters = parameter1 + parameter2
return sumOfMyParamters // <-- this is outputted from the function
}
Insert cell
// RUNNNING THE FUNCTION
theOutput = myFunctionThatCalculatesASum( 5 , 10 )
Insert cell
{
function sum(a,b) {
return a + b
}
function product(a,b) {
return a * b
}
var onePlusTwo = sum(1,2)
var threePlusFour = sum(3,4)
var productOfTwoVariables = product(onePlusTwo, threePlusFour)
return productOfTwoVariables // <-- ignore that return. it's to make the notebook work
}
Insert cell
Insert cell
{
var bob = function () {return "Hi, I'm in Bob!"}
var joe = bob() + " And now I'm called by Joe!"
return joe
}
Insert cell
Insert cell
function checkDay(today) {
if(today === "Sunday" || today === "Saturday") {
return "WEEKEND"
} else {
return "WEEKDAY"
}
}
Insert cell
checkDay("Monday")
Insert cell
Insert cell
{
// COUNTING TO TEN
var count = 0
while( count != 10 ) {
count = count + 1;
}
return count;
}
Insert cell
md` With while loops, we can fall into an "infinite loop" trap, where the loop repeats forever. Let's try to make the example code above into an infinite loop`
Insert cell
Insert cell
Insert cell
{
// COUNTING TO TEN
var count = 0
for( let i = 0; i < 10; i++ ) {
count = count + 1
}
return count
}
Insert cell
Insert cell
Insert cell
function testable(isGood) {
if(isGood===true)
return "yes"
return "no"
}
Insert cell
test1 = testable(true)==="yes"
Insert cell
test2 = testable(false)==="no"
Insert cell
test3 = testable(1)==="yes"
Insert cell
Insert cell
Insert cell
function sleepIn(weekday, vacation) {
if(weekday===false || vacation===true){
return true;
} else{
return false;
}
}
Insert cell
{
if(sleepIn(1,2)===undefined)
return "Your function will be unit tested here"
try
{
expect(sleepIn(true,true)).to.equal(true)
expect(sleepIn(true,false)).to.equal(false)
expect(sleepIn(false,true)).to.equal(true)
expect(sleepIn(false,false)).to.equal(true)
return success()
}
catch(err)
{
return failure()
}
}
Insert cell
Insert cell
function hasTeen(num1, num2, num3) {
if((num1>=13 && num1<=19) || (num2>=13 && num2<=19) || (num3>=19 && num3<=19)) {
return true
} else{
return false
}
}
Insert cell
{
if(hasTeen(1,1,1)===undefined)
return "Your function will be unit tested here"
try
{
expect(hasTeen(0,0,0)).to.equal(false)
expect(hasTeen(0,13,0)).to.equal(true)
expect(hasTeen(12,12,12)).to.equal(false)
expect(hasTeen(11,19,20)).to.equal(true)
expect(hasTeen(14,18,0)).to.equal(true)
expect(hasTeen(10,20,12)).to.equal(false)
expect(hasTeen(19,19,19)).to.equal(true)
return success()
}
catch(err)
{
return failure()
}
}
Insert cell
Insert cell
function front3(str) {
if(str.length>=3){
let newStr = '';
for(let i = 0; i < 3; i++){
newStr += str.substring(0,3)
}
return newStr;
} else{
let otherStr = '';
for(let i = 0; i < 3; i++){
otherStr += str;
}
return otherStr;
}
}
Insert cell
{
if(front3("abc")===undefined)
return "Your function will be unit tested here"
try
{
expect(front3("")).to.equal("")
expect(front3("abc")).to.equal("abcabcabc")
expect(front3("XYZ")).to.equal("XYZXYZXYZ")
expect(front3("az")).to.equal("azazaz")
expect(front3("bob")).to.equal("bobbobbob")
expect(front3("NaN")).to.equal("NaNNaNNaN")
expect(front3("123")).to.equal("123123123")
expect(front3("zzz")).to.equal("zzzzzzzzz")
return success()
}
catch(err)
{
return failure()
}
}
Insert cell
Insert cell
function cashCheck(checkAmount)
{
let numberOfHundreds = 0;
let numberOfFifties = 0;
let numberOfTwenties = 0;
let numberOfTens = 0;
let numberOfFives = 0;
let numberOfOnes = 0;
while(checkAmount !== 0){
if(checkAmount >= 100) {
checkAmount-=100;
numberOfHundreds+=1;
}
if(checkAmount < 100 && checkAmount >= 50){
checkAmount-=50;
numberOfFifties+=1;
}
if(checkAmount < 50 && checkAmount >= 20){
checkAmount-=20;
numberOfTwenties+=1;
}
if(checkAmount < 20 && checkAmount >= 10){
checkAmount-=10;
numberOfTens+=1;
}
if(checkAmount < 10 && checkAmount >=5) {
checkAmount-=5;
numberOfFives+=1;
}
if(checkAmount < 5 && checkAmount >=1){
checkAmount-=1;
numberOfOnes+=1;
}
}
let returnStr = 'Give the customer ';
if(numberOfHundreds > 0){
if(numberOfHundreds > 1){
returnStr += numberOfHundreds + ' $100 bills, '
} else{
returnStr += numberOfHundreds + ' $100 bill, '
}
}
if(numberOfFifties > 0){
if(numberOfFifties > 1){
returnStr += numberOfFifties + ' $50 bills, '
} else{
returnStr += numberOfFifties + ' $50 bill, '
}
}
if(numberOfTwenties > 0){
if(numberOfTwenties > 1){
returnStr += numberOfTwenties + ' $20 bills, '
} else{
returnStr += numberOfTwenties + ' $20 bill, '
}
}
if(numberOfTens > 0){
if(numberOfTens > 1){
returnStr += numberOfTens + ' $10 bills, '
} else{
returnStr += numberOfTens + ' $10 bill, '
}
}
if(numberOfFives > 0){
if(numberOfFives > 1){
returnStr += numberOfFives + ' $5 bills, '
} else{
returnStr += numberOfFives + ' $5 bill, '
}
}
if(numberOfOnes > 0){
if(numberOfOnes > 1){
returnStr += numberOfOnes + ' $1 bills, '
} else{
returnStr += numberOfOnes + ' $1 bill, '
}
}
returnStr = returnStr.substring(0, returnStr.lastIndexOf(',')) + '.';
var billCount = (returnStr.match(/bill/g) || []).length;
var oldString = '';
if(billCount > 1){
oldString = returnStr.substring(0, returnStr.lastIndexOf(','));
oldString = oldString + ', and' + returnStr.substring(returnStr.lastIndexOf(',')+1);
returnStr = oldString;
}
return returnStr;
}
Insert cell
checkAmount = //check your code here
Insert cell
Insert cell
{
if(cashCheck(12)==='Give the customer 12 dollars.')
return "Your function will be unit tested here"
try
{
expect(cashCheck(20)).to.equal('Give the customer 1 $20 bill.')
expect(cashCheck(17)).to.equal('Give the customer 1 $10 bill, 1 $5 bill, and 2 $1 bills.')
expect(cashCheck(298)).to.equal('Give the customer 2 $100 bills, 1 $50 bill, 2 $20 bills, 1 $5 bill, and 3 $1 bills.')
expect(cashCheck(1052)).to.equal('Give the customer 10 $100 bills, 1 $50 bill, and 2 $1 bills.')
return success()
}
catch(err)
{
return failure()
}
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more