diff --git a/index.js b/index.js index 93cd82f..71c6b95 100644 --- a/index.js +++ b/index.js @@ -13,11 +13,15 @@ var numArray = [0,1,10,100,1000]; /* myEach */ // -// myEach(numArray, function print(element, index, arr) { -// console.log('inside myEach', element, index, arr); -// }); +// function myEach(arr, callback) { +// for(i = 0; i < arr.length; i++ ){ +// callback(arr[i]); +// } +// } +// function print(item){ console.log(item)}; +// myEach(numArray, print); /* myMap */ diff --git a/myEach.js b/myEach.js index e95bc02..9917c90 100644 --- a/myEach.js +++ b/myEach.js @@ -3,7 +3,9 @@ function myEach(arr, callback) { // CODE INSIDE HERE // - + for(i = 0; i < arr.length; i++ ){ + callback(arr[i], i, arr); + } } /* diff --git a/myEvery.js b/myEvery.js new file mode 100644 index 0000000..c9db7a7 --- /dev/null +++ b/myEvery.js @@ -0,0 +1,10 @@ +function myEvery(arr, callback) { + +// CODE INSIDE HERE // + for(i = 0; i < arr.length; i++ ){ + if(!callback(arr[i],i,arr)){ + return false; + } + } + return true; +} \ No newline at end of file diff --git a/myFilter.js b/myFilter.js new file mode 100644 index 0000000..e621c24 --- /dev/null +++ b/myFilter.js @@ -0,0 +1,12 @@ +function myFilter(arr, callback) { + +// CODE INSIDE HERE // + var newArray = []; + for(i = 0; i < arr.length; i++ ){ + if(callback(arr[i])){ + newArray.push(arr[i]); + } + } + + return newArray; +} \ No newline at end of file diff --git a/myMap.js b/myMap.js index ccb09c3..cc0485e 100644 --- a/myMap.js +++ b/myMap.js @@ -3,7 +3,11 @@ function myMap(arr, callback) { // CODE INSIDE HERE // - + var newArray = []; + for(i = 0; i < arr.length; i++){ + newArray.push(callback(arr[i], i, arr)); + } + return newArray; } /* diff --git a/myReduce.js b/myReduce.js index 174fbe3..93ab1ed 100644 --- a/myReduce.js +++ b/myReduce.js @@ -1,10 +1,22 @@ // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce for more details // Don't worry about initialValue at first. You can always add it in later. -function myReduce(arr, callback) { +function myReduce(arr, callback, initialValue) { // CODE INSIDE HERE // - + var result; + if(!initialValue){ + result = arr[0]; + } + else{ + result = initialValue; + } + + for(i = 1 - (initialValue ? 1: 0) ; i < arr.length ; i++){ + result = callback(result, arr[i], i, arr); + } + + return result; } /* diff --git a/mySome.js b/mySome.js new file mode 100644 index 0000000..1ce6380 --- /dev/null +++ b/mySome.js @@ -0,0 +1,11 @@ +function mySome(arr, callback) { + +// CODE INSIDE HERE // + for(i = 0; i < arr.length; i++ ){ + if(callback(arr[i],i,arr)){ + return true; + } + } + + return false; +} \ No newline at end of file