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

142
Visualizações
How to map this specific array of objects to the array grouped by the common key value

I have this simplified array of objects

var items = [{"function":"function_1","process":"process_1"}, {"function":"function_1","process":"process_2"}, {"function":"function_1","process":"process_3"},  {"function":"function_2","process":"process_3"},  {"function":"function_2","process":"process_4"}]

that I want to map in JS according to the keys into the following array:

result = [
{
    "function":"function_1",
    "process": [
      "process_1",
      "process_2" 
  ]
}, 
{
    "function":"function_2",
    "process": [
      "process_3",
      "process_4" 
  ]
}
]

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Dedicated to you my friend

var items = [{"function":"function_1","process":"process_1"}, {"function":"function_1","process":"process_2"}, {"function":"function_1","process":"process_3"},  {"function":"function_2","process":"process_3"},  {"function":"function_2","process":"process_4"}]


var arr2 = items.reduce( (a,b) => {
  
    var i = a.findIndex( x => x.function === b.function);
  
    return i === -1 ? a.push({ function : b.function, process : [b.process] }) : a[i].process.push(b.process), a;
  
}, []);


console.log(arr2)

about 4 years ago · Juan Pablo Isaza Relatório

0

var items = [{
  "function": "function_1",
  "process": "process_1"
}, {
  "function": "function_1",
  "process": "process_2"
}, {
  "function": "function_1",
  "process": "process_3"
}, {
  "function": "function_2",
  "process": "process_3"
}, {
  "function": "function_2",
  "process": "process_4"
}]

var uniqueFunctionList = [] // to keep track of unique function names
var resultArr = []          
items.forEach(item => {
  if (!uniqueFunctionList.includes(item.function)) { // item object doesnt exist
    uniqueFunctionList.push(item.function)           // add unique function name
    let tmp_obj = {}
    tmp_obj['function'] = item.function              // item is unique just push it
    tmp_obj['process'] = [item.process]              // make process array via []
    resultArr.push(tmp_obj)                          
  } else {                                           // function name is not unique
    resultArr.forEach(result => {                    // it is available in resultArr
      if (result.function == item.function) {        // find the function
        result.process.push(item.process)            // push to process array  
      }
    })
  }
})

console.log(resultArr)

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