User Tools

Site Tools


java-script:reduce:group-people-by-age

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java-script:reduce:group-people-by-age [2023/08/07 20:31] odeftajava-script:reduce:group-people-by-age [2023/08/07 20:42] (current) odefta
Line 1: Line 1:
-====== Use reduce to group people by age ======+====== Using reduce to group people by age ====== 
 + 
 +In this example, the accumulator starts as an empty object {}, and the function is applied to each person object in the people array. 
 + 
 +This function is a neat example of how you can use **reduce** in conjunction with other modern JavaScript features like **destructuring** and the **nullish coalescing operator** to concisely perform a complex transformation on an array.
  
 <code javascript group-people-by-age-reduce.js> <code javascript group-people-by-age-reduce.js>
 function groupPeople(people) { function groupPeople(people) {
-    //check if people is an object+    
     if (people !== null && Array.isArray(people) && Array(people).length !== 0 && typeof people[0] === 'object') {     if (people !== null && Array.isArray(people) && Array(people).length !== 0 && typeof people[0] === 'object') {
  
-        //get all possible ages 
         let groupedPeopleByAge = people.reduce((group, person) => {         let groupedPeopleByAge = people.reduce((group, person) => {
-            const { age } = person; +            const { age } = person; //destructuring 
-            group[age] = group[age] ?? [];+            group[age] = group[age] ?? []; //nullish coalescing operatorn
             group[age].push(person.name);             group[age].push(person.name);
             return group;             return group;
Line 29: Line 32:
 let groupedPeopleByAge = groupPeople(people); let groupedPeopleByAge = groupPeople(people);
 console.log(groupedPeopleByAge); console.log(groupedPeopleByAge);
 +</code>
 +
 +Output:
 +<code>
 +{ '25': [ 'Alice', 'Bob', 'Eve' ], '30': [ 'Charlie', 'David' ] }
 </code> </code>
  
java-script/reduce/group-people-by-age.1691429473.txt.gz · Last modified: 2023/08/07 20:31 by odefta