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]');
```