Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda