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

165
Visualizações
How to reorder this array without an index?

Let say I have

let arr = [
{code: 5, country: 'DE', price: 8},
{code: 6, country: 'RU', price: 9},
{code: 7, country: 'US', price: 10},
{code: "FiveX", country: 'UK', price: 11},
{code: 5, country: 'ES', price: 12},
{code: 5, country: 'RU', price: 13},
{code: 7, country: 'BE', price: 14},
]

I need this array to be reordered as follows

arr = [
{priceDE: '8 (code5)' , priceES: '12 (code5)', priceRU: '13 (code5)'},
{priceRU: '9 (code6)'},
{priceUS: '10 (code7)', priceBE: '14 (code7)'}
{priceUK: '11 (codeFiveX)'}
]

I basically need to group them with the code reference, but I dont really understand how to do it without knowing the value of code beforehand. Keep in mind that code isn't always a number it can be a string

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

0

First of all your original array declaration is wrong, as it uses DE as a variable while it should be a string encapsulated by quotes 'DE' so you need to rewrite that to be reproducible.

So for example {code: 5, country: 'DE', price: 8},

Then you need to loop your original array, take the values and rebuild a new object with the new values. I say object and not array since we need to use a key that in your case can be either a number, e.g. 5, or a string, e.g. FiveX.

Here's the resulting snippet

let arr = [
{code: 5, country: 'DE', price: 8},
{code: 6, country: 'RU', price: 9},
{code: 7, country: 'US', price: 10},
{code: "FiveX", country: 'UK', price: 11},
{code: 5, country: 'ES', price: 12},
{code: 5, country: 'RU', price: 13},
{code: 7, country: 'BE', price: 14},
]

let new_arr = {}
for(i=0; i<arr.length; i++) {
    let code = arr[i].code
    let country = arr[i].country
    let price = arr[i].price
    if (code in new_arr) {
        new_arr[code]['price'+country] = price
    } else {
        new_arr[code] = {}
        new_arr[code]['price'+country] = price
    }
}
console.log(new_arr)

The resulting array will be what you requested, apart from the weird (code5) which if you want you can add by concatenating price+" (code"+code+")" in the for loop.

EDIT

I forgot, if you want the final item to be an array instead of an object, you can loop it again.

let final_arr = []
for(i in new_arr) {
    final_arr.push(new_arr[i])
}
console.log(final_arr)
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