Quick actions

cmd+k|ctrl+k

Navigation

Languages

ReduceUpdate

Snippet info

Language

JavaScript

Visibility

public

Author

bassaniolaiyiuwing

Created

2025-03-17T02:33:28.340272Z

Updated

2025-03-17T02:33:28.340272Z

const companies=[
   { name: "company one", category: "f", start:1981, end: 2004},
   { name: "company two", category: "retail", start:1991, end: 2024},
   { name: "company three", category: "f", start:2000, end: 2024},
   { name: "company four", category: "retail", start:1881, end: 2004},
   { name: "company five", category: "sales", start:2001, end: 2025},
   { name: "company six", category: "sales", start:1981, end: 2014},
   { name: "company seven", category: "f", start:1981, end: 2004},
   { name: "company eight", category: "reails", start:2020, end: 2025},
   { name: "company nine", category: "sales", start:1981, end: 2024},
   { name: "company ten", category: "f", start:1991, end: 2014},
   ];
      
   const ages=[33,12,36,23,77,65,48,33,26,6,15,44];
   
   
//   for loop <- 
   for(let i =0; i <ages.length; i++){
       console.log(ages[i])
   }
   
   
   //for each 
   companies.forEach((company)=> {
       company.start++;
        });
   
   console.log(companies);
   
   
      
   console.log("------for each + if then else----- ");
   
    //for each 
   companies.forEach((company)=> {
       company.start = company.start >2000?
       company.start++ : company.start;
        });
   
      console.log("------for each + if then else----- ");
      
   console.log(companies);
   
      companies.forEach((company, index, arr)=> {
     console.log(company, index, arr);
        });
   
   console.log(companies);
   
    
 console.log("-----for loop company 7 + company 9 ---- ");
         
          total =0;
   companies.forEach((company, index, arr) =>{
              if(index < arr.length -2){
                  total =company.start + arr[index+2].start }
          });
          
          console.log(total);
   
   console.log("------total age ----- ");
   

   
   
          total =0;
          ages.forEach((age)=> total +=age);
          console.log(total);
          
          
             
   console.log("------filter age ----- ");
   let kids = ages.filter(age=> age<= 19);
   console.log(kids);
    console.log(ages);
    
       console.log("------filter age old way----- ");
    kids =[];
    for(let i =0; i <ages.length; i++){
    if(ages[i] <=18) {
    kids.push(ages[i]);}
}
    console.log(kids);
    
      console.log("------filter companies----- ");
     const result = companies.filter((company) => {
          return company.start >= 2000 && company.category == "f"
      });
            console.log(result);
            
              console.log("------filter companies by year----- ");
     const result2 = companies.filter((company) => {
          return company.start >= 2014 && company.end >=2014 && company.end<=2026
      });
            console.log(result2);

    console.log("----map ex1----- ");
    const companyNames= companies.map((company)=> company.name);
    console.log(companyNames);
        

    
  console.log("----map ex2 ${}----- ");
   const testmap = companies.map((company)=>{
       return `${company.name} [${company.start}-${company.end}]`
   });
            console.log(testmap);

    
  console.log("----map 2 times----- ");
  
 const ageMap= ages.map(age=> Math.sqrt(age)).map(age=> age*2);
 console.log(ageMap);
 
 
  console.log("----Array function -sorting---- ");
  const sortedCompanies = companies.sort((c1,c2) =>
  c2.start > c1.start ? 1 : -1);
 console.log(sortedCompanies);
  
   console.log("----Array function -sorting 2---- ");
  const sortedCompanies1 = companies.sort((c3,c2) =>
  c3.start > c2.start ? 1 : -1);
 console.log(sortedCompanies1);
 
 
 // reducer
 console.log("-------reducer---------");
 a = [5,8,6, 10,9];

const maxNum = a.reduce((max, current) => (current > max ? current : max), a[0]);

console.log(maxNum);
 
  console.log("-------reducer. max---------");

const arr = [5, 7, 9, 11, 51, 43, 55, 6, 87, 12];

const maxValue = (a, b) => (a > b ? a : b);

function seqeMax(arr) {
    let result = arr[0];
    for (let element of arr) {
        result = maxValue(result, element);
    }
    return result;
}

console.log(seqeMax(arr)); // Output: 87


console.log("-------reducer. min---------");

const minValue = (a, b) => (a < b ? a : b);

function seqeMin(arr) {
    let result = arr[0];
    for (let element of arr) { 
        result = minValue(result, element);
    }
    return result;
}

console.log(seqeMin(arr)); // Output: 5


console.log("-------design pattern ==> reduce function---------");
const sum = (a, b) => (a+b);

function seqe3(fn, arr, init) {
    let result = init; 
    for (let element of arr) {
        result = fn(result, element);
    }
    return result;
}
console.log(seqe3(sum, arr, 0));
console.log(seqe3(maxValue, arr, -99999));
console.log(seqe3(minValue, arr, 999999)); 

console.log("-------design pattern ==> reduce function---------");
let agesum =0;
for(let i =0; i <ages.length;i++){
    agesum = agesum +ages[i];
}
console.log(agesum);

//ex 1
console.log("-------reducing function way. totla =0---------");
const ageSum = ages.reduce((total,age)=>{
    return total + age;
}, 0);
console.log(ageSum);


//ex 2
console.log("-------reducing function way. totla =0---------");
console.log("const totalYears = compainies.reduce(()=>{},0);");
const totalYears = companies.reduce((total, company)=>{
    return company.end >=2025  ? total + (company.end - company.start) : total;
}, 0);
console.log(totalYears);

console.log("------add index--------");
 const totalYears1 = companies.reduce((total, company, index) => {
    console.log(`Processing index: ${index}, Company: ${company.name}`);
    return company.end >= 2025 ? total + (company.end - company.start) : total;
}, 0);

console.log("Total Years:", totalYears1);
INFO