Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
Update the count value in an array

I have two array of objects arr 1 and arr 2
arr1 = [{fruit: 'apple',count: 0}] arr2 = [{fruit: 'apple',count: 0}]

Need to create the function which accepts arr1 and arr2 as arguments and compare the fruit name if its same need to update the count value based on the count input else push the value to the array

sample output 1:

Inputs: arr1 = [{fruit: 'apple',count: 10}] arr2 = [{fruit: 'apple',count: 30},{fruit: 'orange',count: 20}]

Output: [{fruit: 'apple',count: 40},{fruit: 'orange',count: 20}]

sample output2

Inputs: arr1 = [{fruit: 'apple',count: 15}] arr2 = [{fruit: 'orange',count: 20}]

Output: [{fruit: 'apple',count: 15},{fruit: 'orange',count: 20}]

code that i have tried:

function compareAndUpdateCount(arr1, arr2) {
    for (i = 0; i < arr1.length; i++) {
        if (arr1[i].fruit === arr2[i].fruit) {
            arr1[i].count = arr1[i].count + arr2[i].count;
        } else {
            arr1.push(arr2[i])
        }
    }
}

This works fine when the array lengths are same ,if its different need help on writing the optimise code and also the reduce time complexity if we have more data

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Loop within another loop to compare all object properties and then use an if statement to sum up the counter and remove the item of the second array using splice()

Try the following snippet:

var arr1 = [{fruit: 'apple',count: 10}];
var arr2 = [{fruit: 'apple',count: 30}, {fruit: 'orange',count: 20}, {fruit: 'apple',count: 20}, {fruit: 'banana',count: 20}];
var counter = 0;

for(obj1 in arr1){
  for(obj2 in arr2){
    if (arr1[obj1].fruit === arr2[obj2].fruit) {
      arr1[obj1].count = arr1[obj1].count + arr2[obj2].count;
      arr2.splice(counter, 1);
      counter++;
    }
  } 
}
arr1 = arr1.concat(arr2);
console.log(arr1)

about 4 years ago · Juan Pablo Isaza Report

0

var result;
if(arr1.length < 1) {
    result = arr2;
} else if(arr2.length < 1) {
    result = arr1;
} else {
var existing = [];
var arr3 = [];
    arr1.forEach(function (item, index) {
      arr2.forEach(function (item2, index2) {
        if(item.fruit === item2.fruit) {
            item.count = item.count + item2.count;
            existing.push(index2);
        } else {
        arr3.push(item);
        if(!existing.includes(index2)) {
            arr3.push(item2);
        }        
        }
      });
    });
    result = arr3;
}
about 4 years ago · Juan Pablo Isaza Report

0

You will need a setter for count in your class Make a new array of objects temparr

        temparr[0] = arr1[0];
        if((arr1[0].fruit).equals(arr2[0].fruit)) {
            temparr[0].setcount(arr1[0].count+arr2[0].count);
        }
        else {
            temparr[1]=arr2[0];
        }

At the end u print temparr

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!