From 245a512bc7fe6ade417dcdcaea229435e5665f11 Mon Sep 17 00:00:00 2001 From: Aaron Altounian Date: Wed, 13 Feb 2019 19:19:58 -0600 Subject: [PATCH 1/3] did assignment using Array prototype methods --- 06week/higherOrder.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/06week/higherOrder.js b/06week/higherOrder.js index 73926e3dc..e03d79489 100644 --- a/06week/higherOrder.js +++ b/06week/higherOrder.js @@ -3,23 +3,23 @@ const assert = require('assert'); function forEach(arr, callback) { - // Your code here + arr.forEach(callback); } function map(arr, callback) { - // Your code here + return arr.map(x => callback(x)); } function filter(arr, callback) { - // Your code here + return arr.filter(x => callback(x)); } function some(arr, callback) { - // Your code here + return arr.some(x => callback(x)); } function every(arr, callback) { - // Your code here + return arr.every(x => callback(x)) } if (typeof describe === 'function') { From 391f822c45662a74ee0ed5d9a2fb32cc6ac6615c Mon Sep 17 00:00:00 2001 From: Aaron Altounian Date: Thu, 14 Feb 2019 19:02:53 -0600 Subject: [PATCH 2/3] began writing them long ways with for loops --- 06week/higherOrder.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/06week/higherOrder.js b/06week/higherOrder.js index e03d79489..ea57bd75e 100644 --- a/06week/higherOrder.js +++ b/06week/higherOrder.js @@ -3,11 +3,17 @@ const assert = require('assert'); function forEach(arr, callback) { - arr.forEach(callback); + // arr.forEach(callback); + for( let i = 0; i < arr.length; i++ ) { + callback(); + } } function map(arr, callback) { - return arr.map(x => callback(x)); + // return arr.map(x => callback(x)); + for( let i = 0; i < arr.length; i++ ) { + + } } function filter(arr, callback) { From 2da62d6d0f304e4bc925963fb3cb3950223994bf Mon Sep 17 00:00:00 2001 From: Aaron Altounian Date: Sat, 16 Feb 2019 21:19:51 -0600 Subject: [PATCH 3/3] refactored using for loops --- 06week/higherOrder.js | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/06week/higherOrder.js b/06week/higherOrder.js index ea57bd75e..18e8a9823 100644 --- a/06week/higherOrder.js +++ b/06week/higherOrder.js @@ -11,21 +11,48 @@ function forEach(arr, callback) { function map(arr, callback) { // return arr.map(x => callback(x)); + let newArray = []; for( let i = 0; i < arr.length; i++ ) { - + let element = arr[i]; + newArray.push(callback(element, i, arr)) } + return newArray; } function filter(arr, callback) { - return arr.filter(x => callback(x)); + // return arr.filter(x => callback(x)); + let newArray = []; + for( let i = 0; i < arr.length; i++ ) { + let element = arr[i]; + if(callback(element, i, arr)) newArray.push(element); + } + return newArray; } function some(arr, callback) { - return arr.some(x => callback(x)); + // return arr.some(x => callback(x)); + let boolean = false; + for( let i = 0; i < arr.length; i++ ) { + let element = arr[i]; + if( callback(element, i, arr) ) { + boolean = true; + break; + } + } + return boolean; } function every(arr, callback) { - return arr.every(x => callback(x)) + // return arr.every(x => callback(x)) + let boolean = true; + for( let i = 0; i < arr.length; i++ ) { + let element = arr[i]; + if( !callback(element, i, arr) ) { + boolean = false; + break; + } + } + return boolean; } if (typeof describe === 'function') {