- Flat an array
let arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; const flattened = arr.reduce((acc, item) => [...acc, ...item], []); console.log(flattened); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
If you have a more complex array there is this other solution
arr = [ [1, 2, 3], [4, ["a", [5]], 6], [7, 8, [9, 10]], ]; const flatten = (arr) => arr.reduce((acc, item) => { if (item instanceof Array) { return acc.concat(flatten(item)) } acc.push(item); return acc; }, []); flatten(arr);
- Sum all numbers
arr = [4, 5, 9, 18]; const total = arr.reduce((acc, number) => acc + number, 0); console.log(total); // 36
- Change in an object with the number of occurrences
arr = ["Los Angeles", "London", "Amsterdam", "Singapore", "London", "Tokyo", "Singapore"]; const counter = arr.reduce((acc, city) => { acc[city] = acc[city] ? acc[city] + 1 : 1; return acc; }, {}); console.log(counter); /* { "Los Angeles": 1, "London": 2, "Amsterdam": 1, "Singapore": 2, "Tokyo": 1 } */
Top comments (0)