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

159
Visualizações
How to group two-dimensional array by value at zero index

Let's say I have the following two-dimensional array:

const array = [[1, 1], [1, 2], [2, 1], [2, 2]];

What I want to do is to find all the values under first index which have common zero index value. So the result should be the following:

[[1, [1, 2]], [2, [1, 2]]]

Or maybe Map would look better:

[Map(1 => [1, 2]), Map(2 => [1, 2])]

How can I do that? With or without lodash. My solution looks a bit bloated and messy:

const array = [[1, 1], [1, 2], [2, 1], [2, 2]];
const grouppedCartItemsMap = new Map();

array.forEach((item) => {
  const [locationId, contractId] = item;

  if (!grouppedCartItemsMap.has(locationId)) {
    grouppedCartItemsMap.set(locationId, [contractId]);
  } else {
    const existingItem = grouppedCartItemsMap.get(locationId);

    if (!existingItem.includes(contractId)) {
      grouppedCartItemsMap.set(locationId, [...existingItem, contractId]);
    }
  }
});
console.log(grouppedCartItemsMap);

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

0

If an object would work:

const array = [[1, 1], [1, 2], [2, 1], [2, 2]];
const grouped = {};
for (const [first, last] of array) {
  grouped[first] ??= [];
  grouped[first].push(last);
}
console.log(grouped);

about 4 years ago · Juan Pablo Isaza Relatório

0

This looks like a use case for reduce:

const array = [[1, 1], [1, 2], [2, 1], [2, 2]];
const grouppedCartItemsMap = array.reduce((acc, [locationId, contractId]) => {
  if (!acc.has(locationId)) acc.set(locationId, [contractId]);
  else acc.get(locationId).push(contractId);
  return acc;
}, new Map());
console.log([...grouppedCartItemsMap.entries()]);

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