Complete the following Lodash exercises. The goal is to become really good at
functional programming paradigm (e.g., _.map
, _.filter
, _.all
, _.any
...etc) and
a number of really useful Lodash methods (e.g., _.find
, _.pluck
... etc).
solution
blockfor/while
loop is allowedFamiliarity with programming in this way will not only make you a super productive programmer but also will pave the way for you to learn MapReduce and MongoDB.
[{name: 'John'}, {name: 'Mary'}, {name: 'Joe'}, {name: 'Ben'}]
4
4
return data.length
[{name: 'John'}, {name: 'Mary'}, {name: 'Joe'}, {name: 'Ben'}]
[ "John", "Mary", "Joe", "Ben" ]
[ "John", "Mary", "Joe", "Ben" ]
return _.map(data, function(d){ return d.name })
[{name: 'John'}, {name: 'Mary'}, {name: 'Joe'}, {name: 'Ben'}]
[ "John", "Joe" ]
"not done"
var result = 'not done' return result
[{name: 'John'}, {name: 'John'}, {name: 'John'}, {name: 'Ben'}]
3
"not done"
var result = 'not done' return result
[{name: 'John Smith'}, {name: 'Mary Kay'}, {name: 'Peter Pan'}, {name: 'Ben Franklin'}]
[ "John", "Mary", "Peter", "Ben" ]
"not done"
var result = 'not done' return result
[{name: 'John Smith'}, {name: 'Mary Smith'}, {name: 'Peter Pan'}, {name: 'Ben Smith'}]
[ "John", "Mary", "Ben" ]
"not done"
var result = 'not done' return result
[{name: 'John Smith'}, {name: 'Mary Kay'}, {name: 'Peter Pan'}]
[ { "name": "Smith, John" }, { "name": "Kay, Mary" }, { "name": "Pan, Peter" } ]
"not done"
var result = 'not done' return result
[{name: 'John Smith', gender: 'm'}, {name: 'Mary Smith', gender: 'f'}, {name: 'Peter Pan', gender: 'm'}, {name: 'Ben Smith', gender: 'm'}]
1
"not done"
var result = 'not done' return result
[{name: 'John Smith', gender: 'm'}, {name: 'Mary Smith', gender: 'f'}, {name: 'Peter Pan', gender: 'm'}, {name: 'Ben Smith', gender: 'm'}]
2
"not done"
var result = 'not done' return result
[{name: 'John Smith', gender: 'm'}, {name: 'Mary Smith', gender: 'f'}, {name: 'Peter Pan', gender: 'm'}, {name: 'Ben Smith', gender: 'm'}]
true
"not done"
var result = 'not done' return result
[{name: 'John Smith', gender: 'm'}, {name: 'Mary Smith', gender: 'f'}, {name: 'Peter Pan', gender: 'm'}, {name: 'Ben Smith', gender: 'm'}]
"m"
"not done"
var result = 'not done' return result
[{name: 'John Smith', age: 54}, {name: 'Mary Smith', age: 42}, {name: 'Peter Pan', age: 15}, {name: 'Ben Smith', age: 35}]
54
"not done"
var result = 'not done' return result
[{name: 'John Smith', age: 54}, {name: 'Mary Smith', age: 42}, {name: 'Peter Pan', age: 15}, {name: 'Ben Smith', age: 35}]
true
"not done"
// use _.all var result = 'not done' return result
[{name: 'John Smith', age: 54}, {name: 'Mary Smith', age: 42}, {name: 'Peter Pan', age: 15}, {name: 'Ben Smith', age: 35}]
true
"not done"
// use _.some var result = 'not done' return result
[{name: 'John Smith', age: 54, favorites: ['food', 'movies']}, {name: 'Mary Smith', age: 42, favorites: ['food', 'travel']}, {name: 'Peter Pan', age: 15, favorites: ['minecraft', 'pokemo']}, {name: 'Ben Smith', age: 35, favorites: ['craft', 'food']}]
3
"not done"
var result = 'not done' return result
[{name: 'John Smith', age: 54, favorites: ['food', 'movies']}, {name: 'Mary Smith', age: 42, favorites: ['food', 'travel']}, {name: 'Peter Pan', age: 15, favorites: ['minecraft', 'pokemo']}, {name: 'Joe Johnson', age: 46, favorites: ['travel', 'movies']}, {name: 'Ben Smith', age: 35, favorites: ['craft', 'food']}]
[ "Mary Smith", "Joe Johnson" ]
"not done"
var result = 'not done' return result
[{name: 'John Smith', age: 54, favorites: ['food', 'movies']}, {name: 'Mary Smith', age: 42, favorites: ['food', 'travel']}, {name: 'Peter Pan', age: 15, favorites: ['minecraft', 'pokemo']}, {name: 'Joe Johnson', age: 46, favorites: ['travel', 'movies']}, {name: 'Ben Smith', age: 35, favorites: ['craft', 'food']}]
"John Smith"
"not done"
var result = 'not done' return result
[{name: 'John Smith', age: 54, favorites: ['food', 'movies']}, {name: 'Mary Smith', age: 42, favorites: ['food', 'travel']}, {name: 'Peter Pan', age: 15, favorites: ['minecraft', 'pokemo']}, {name: 'Joe Johnson', age: 46, favorites: ['travel', 'movies']}, {name: 'Ben Smith', age: 35, favorites: ['craft', 'food']}]
[ "food", "movies", "travel", "minecraft", "pokemo", "craft" ]
"not done"
// hint: use _.pluck, _.uniq, _.flatten in some order var result = 'not done' return result
[{name: 'John Smith', age: 54, favorites: ['food', 'movies']}, {name: 'Mary Smith', age: 42, favorites: ['food', 'travel']}, {name: 'Peter Pan', age: 15, favorites: ['minecraft', 'pokemo']}, {name: 'Joe Johnson', age: 46, favorites: ['travel', 'movies']}, {name: 'Ben Smith', age: 35, favorites: ['craft', 'food']}]
[ "Smith", "Pan", "Johnson" ]
"not done"
var result = 'not done' return result