diff --git a/src/services/array-functions.js b/src/services/array-functions.js index c6d987f..3734dca 100644 --- a/src/services/array-functions.js +++ b/src/services/array-functions.js @@ -8,36 +8,54 @@ //add the returned value from fnc to the new array //after looping, return the new array export function map(theArray, fnc){ - -} + const myNewArray = []; + for (let i=0; i=0; i--){ + reverseArray.push(theArray[i]); + } + return reverseArray; } //create a new array @@ -53,7 +75,11 @@ export function reverse(theArray){ //add the item from each loop to the new array except the first item //return the new array export function tail(theArray){ - + let newArray = []; + for (let i=1; i theArray[i+1]) { + let temp = theArray[i]; + theArray[i] = theArray[i+1] + theArray[i+1] = temp; + swap = true; + } + } + if (swap) { + swap = false; + return sort(theArray); + } else { + return theArray; + } } diff --git a/src/tests/array-functions.test.js b/src/tests/array-functions.test.js index 171fffe..8217339 100644 --- a/src/tests/array-functions.test.js +++ b/src/tests/array-functions.test.js @@ -1,4 +1,4 @@ -import {map,filter,find,findLast} from "../services/array-functions"; +import {map,filter,find,findLast,head,sort,reverse,tail} from "../services/array-functions"; const names = ["Jon","Bob","Ted","Barney","Lilly","Robin","Saul","Axe"]; const myNumbers = [4,3,55,22,99,1913,7,5,4,2,1]; @@ -44,14 +44,48 @@ describe("sort", () => { //filter should return an array with names of length 3 //["Jon","Bob","Ted","Axe"] +describe("filter", () => { + it("should return an array with names of length 3", () => { + expect(filter(names,findThree)).toEqual([ + "Jon","Bob","Ted","Axe" + ]); + }); +}); //find should find one name of "Barney" +describe("find", () => { + it("should find one name of Barney", () => { + expect(find(names,findBarney)).toEqual( + "Barney" + ); + }); +}); //findLast should find the last name of "Axe" +describe("findLast", () => { + it("should find the last name in the array - Axe", () => { + expect(findLast(names)).toEqual( + "Axe" + ); + }); +}); //reverse should return an array with the elements in the opposite order //["Axe","Saul","Robin","Lilly","Barney","Ted","Bob","Jon"] +describe("reverse", () => { + it("should return an array with the elemens in the opposite order", () => { + expect(reverse(names)).toEqual([ + "Axe","Saul","Robin","Lilly","Barney","Ted","Bob","Jon" + ]); + }); +}); + //tail should return all elements in an array except the first one //[Bob","Ted","Barney","Lilly","Robin","Saul","Axe"]; - - +describe("tail", () => { + it("should return all elements in an array except the first one", () => { + expect(tail(names)).toEqual([ + "Bob","Ted","Barney","Lilly","Robin","Saul","Axe" + ]); + }); +}); diff --git a/src/tests/calculations.test.js b/src/tests/calculations.test.js index 409e055..68a50be 100644 --- a/src/tests/calculations.test.js +++ b/src/tests/calculations.test.js @@ -1,7 +1,25 @@ -import {add, subtract, multiply,divide} from "../services/calculations"; +import {add, subtract, multiple,divide} from "../services/calculations"; describe("add", () => { it("should add 1 and 2 and return 3", () => { expect(add(1, 2)).toBe(3); }); }); + +describe("subtract", () => { + it("should subtract 1 from 3 and return 2", () => { + expect(subtract(3,1)).toBe(2); + }) +}); + +describe("multiply", () => { + it("should multiply 2 and 3 and return 6", () => { + expect(multiple(2,3)).toBe(6); + }); +}); + +describe("divide", () => { + it("should divide 2 from 6 and return 3", () => { + expect(divide(6,2)).toBe(3); + }); +});