You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*`map` => Takes an array, and then applies a function to every element of that array.
*`filter` => Takes an array, and passes every element through a function. It only keeps the element if the function returns `true`.
*`sort` => By default, it sorts the elements of an array in alphabetical order. But, if you give it a function, it will use it to sort the array in the following way:
* The function takes two arguments to compare, `a` and `b`.
* The function returns a negative number if `a` is lower than `b`.
* The function returns zero if `a` has the same value as `b`.
* The function returns a positive number is `a` is higher than `b`.
*`reduce` => Starts with an accumulator. It starts with the first element of the array. Then it goes through the rest of the elements, and for each one, it applies a function to the accumulator and the element and puts the result back into the accumulator. The function returns what the accumulator is at the end.
## Examples
* Let's say you have `[1, 2, 4, 6].map(x => x*2)`. It applies the doubling function to every element of the array, so it returns `[2, 4, 8, 12]`.
* Let's say you have `["a", "hello", "b", "goodbye"]` and you want to filter out all single-letter strings. You can call filter with the following function: `x => x.length > 1`. That will only return `true` if the string has more than one letter.
* You want to sum all the elements of `[6, 5, 3, 1, 8, 7, 2, 4]`. You can call reduce with this function: `(acc, val) => acc + val`:
* It starts with an accumulator value of `6`, the first value of the array.
* It goes to the next element, `5`, and applies the function to `6` and it. It adds 6 + 5 = 11. That's the new accumulator value.
* It goes to the next element, `3`, and applies the function to `11` and it. It adds 11 + 3 = 14. That's the new accumulator value.
* It goes to the next element, `1`, and applies the function to `14` and it. It adds 14 + 1 = 15. That's the new accumulator value.
* And so on, until we get to the accumulator value of `36`. That's the answer.
* This method works because this is just a convoluted way of just adding on every element of the array one by one.
* You have `[9, 4, 5, 3, 1].sort((a, b) => a - b)`. The function returns a negative number if a < b, and a positive number if a > b. So it will sort it from lowest to highest: `[1, 3, 4, 5, 9]`.
* You have `[9, 4, 5, 3, 1].sort((a, b) => b - a)`. The function returns a negative number if a > b, and a positive number if a < b. So it will sort it from highest to lowest: `[9, 5, 4, 3, 1]`.