diff --git a/src/every.js b/src/every.js index 4a131e5..adaf6c1 100644 --- a/src/every.js +++ b/src/every.js @@ -8,7 +8,9 @@ // ] // Expected Output: true function allNutritious (items) { - + return items.every(function(item){ + return item.nutritious == true; + }); } // Sample Input: @@ -19,7 +21,9 @@ function allNutritious (items) { // ] // Expected Output: false function allOfOneType (items) { - + return items.every(function(item){ + return (typeof item === typeof items[0]) && (Array.isArray(item) === Array.isArray(items[0])) ; + }); } module.exports = { allNutritious, allOfOneType } diff --git a/src/filter.js b/src/filter.js index 7b35cd5..5e3a9b8 100644 --- a/src/filter.js +++ b/src/filter.js @@ -3,7 +3,9 @@ // Sample Input: [ 11, 44, 78, 99 ] // Expected Output: [ 11, 44 ] function onlyOdd (numbers) { - + return numbers.filter(function(number){ + return number % 2 === 1; + }); } // Sample Input: @@ -16,7 +18,21 @@ function onlyOdd (numbers) { // Expected Output: // { id: 42, name: 'Clojure' } function findById (languages, id) { - + let lang = languages.filter(function(language){ + if(!language){ + return null; + } + if(language.id === id){ + return {id: language.id, name: language.name}; + } else { + return null; + } + }, id); + if(lang[0] !== undefined){ + return lang[0]; + } else { + return null; + } } module.exports = { onlyOdd, findById } diff --git a/src/map.js b/src/map.js index 91b7cb0..ba95f3c 100644 --- a/src/map.js +++ b/src/map.js @@ -8,7 +8,9 @@ // ] // Expected Output: ['Alex Mali', 'dvsn', 'Mura Masa'] function justArtists (songs) { - + return songs.map((song)=>{ + return song.artist; + }); } // Sample Input: @@ -24,7 +26,9 @@ function justArtists (songs) { // { name: 'Banana Bunches', price: 2.33, quantity: 2 } // ] function toObject (candies) { - + return candies.map((candy)=>{ + return {name: candy[0], price: candy[1], quantity: candy[2]}; + }); } module.exports = { justArtists, toObject } diff --git a/src/reduce.js b/src/reduce.js index be0356d..ed27c9c 100644 --- a/src/reduce.js +++ b/src/reduce.js @@ -9,7 +9,9 @@ // ] // Expected Output: [ 10, 20, 30, -10, -4, 0, 10, 100, 1000 ] function flatten (matrix) { - + return matrix.reduce((flat, matrixEntry) => { + return flat.concat(matrixEntry); + }, []); } // Sample Input: @@ -24,7 +26,20 @@ function flatten (matrix) { // cell: [ '(333) 655-4555', '(333) 455-5555', '(333) 255-5555' ] // } function consolidate (numbers) { - + return numbers.reduce((phoneNumbers, numberEntry) => { + if(!numberEntry){ + return phoneNumbers; + } + if(!phoneNumbers.home){ + phoneNumbers.home = []; + } + if(!phoneNumbers.cell){ + phoneNumbers.cell = []; + } + phoneNumbers.home.push(numberEntry.phone.home); + phoneNumbers.cell.push(numberEntry.phone.cell); + return phoneNumbers; + }, {}); } module.exports = { flatten, consolidate } diff --git a/src/some.js b/src/some.js index 5eac3c6..972d838 100644 --- a/src/some.js +++ b/src/some.js @@ -3,13 +3,19 @@ // Sample Input: [ 10, 20, 30, 40, -50 ] // Expected Output: true function anyAreNegative (numbers) { - + return numbers.some((number) => number < 0) } // Sample Input: [ 'Once', 'upon', 'a', 'time', '' ] // Expected Output: true function includesFalseyValues (items) { - + return items.some(item => { + if(!item){ + return true; + } else { + return false; + } + }) } module.exports = { anyAreNegative, includesFalseyValues }