map()
, filter()
, and reduce()
, that take other functions as arguments for processing collections of data.
Read the following code:
FBPosts.filter(function(post) {We have written this with
return post.thumbnail !== null && post.shares > 100 && post.likes > 500;
})
filter()
to at least make it somewhat readable. Now compare it to the following code which uses arrow function syntax instead:
FBPosts.filter((post) => post.thumbnail !== null && post.shares > 100 && post.likes > 500)This code is more succinct and accomplishes the same task with fewer lines of code.
realNumberArray
and store the new array in the variable squaredIntegers
.
squaredIntegers
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: squaredIntegers
should be an array
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]
");'
- 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");'
```