map()
, filter()
, and reduce()
. forEach()
, and run it on the following array of sample Facebook posts.
let FBPosts = [Of the two
{thumbnail: "someIcon", likes:432, shares: 600},
{thumbnail: "Another icon", likes:300, shares: 501},
{thumbnail: "Yet another", likes:40, shares: 550},
{thumbnail: null, likes: 101, shares:0},
]
forEach()
versions below, both perform the exact same log function, and each takes an anonymous callback with a parameter post
. The difference is the syntax. One uses an arrow function and the other does not.
ES5
FBpost.forEach(function(post) {
console.log(post) // log each post here
});
ES6
FBpost.forEach((post) => {
console.log(post) // log each post here
});
filter()
is very similar. Below it will iterate over the FBPosts
array, perform the logic to filter out the items that do not meet the requirements, and return a new array, results
.
let results = arr1.filter((post) => { return post.thumbnail !== null && post.likes > 100 && post.shares > 500 });
console.log(results); // [{thumbnail: "someIcon", likes: 432, shares: 600}, {thumbnail: "Another icon", likes: 300, shares: 501}]
realNumberArray
and store the new array in the variable squaredIntegers
.
squareList
should be a function
.
testString: assert.typeOf(squareList, 'function'), 'squareList
should be a function
';
- text: squareList
should be a constant variable (by using const
).
testString: getUserInput => assert(getUserInput('index').match(/const\s+squaredIntegers/g), 'squaredIntegers
should be a constant variable (by using const
).');
- text: function
keyword was not used.
testString: getUserInput => assert(!getUserInput('index').match(/function/g), 'function
keyword was not used.');
- text: loop should not be used
testString: getUserInput => assert(!getUserInput('index').match(/(for)|(while)/g), 'loop should not be used');
- text: map
, filter
, or reduce
should be used
testString: getUserInput => assert(getUserInput('index').match(/map|filter|reduce/g), 'map
, filter
, or reduce
should be used');
- text: The function should return an array
called squaredIntegers
testString: assert(Array.isArray(squaredIntegers), 'squaredIntegers
should be an array
');
- text: squaredIntegers
should be [16, 1764, 36]
testString: assert.deepStrictEqual(squaredIntegers, [16, 1764, 36], 'squaredIntegers
should be [16, 1764, 36]
');
```