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

102
Visualizações
Sort deeply nested objects alphabetically by keys

We are using vue-i18n and maintain our messages within an js variable. This leads to deeply nested objects or key/value pairs.

const messages = {
  en: {
    message: {
      page1: {
        title: "Some title",
        button: {
          title: "Foo",
        },
        subpage: {
          ...
        }
      },
      ...
    },
  },
  de: {...},
};

As u can see, without an appropriate sorting this file will be really confusing. My idea is to sort the whole file alphabetically by keys.

Is there an algorithm/code that can be used for this? Or do I have to write it myself?

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

0

You can do some recursivity like :

I used the following answer to write the order function

const order = (unordered) => Object.keys(unordered).sort().reduce(
  (obj, key) => {
    obj[key] = unordered[key];
    return obj;
  }, {}
);

const message = {
  fr: {
    message: "Bonjour",
    a: 1
  },
  en: {
    message: "Hello",
    a: {
      c: 1,
      b: 2
    }
  },
  es: "Hola"
}

const sortObjectDeeply = (object) => {
  for (let [key, value] of Object.entries(object)) {
    if (typeof(value) === "object") {
      object[key] = sortObjectDeeply(value)
    }
  }
  return order(object)
}

console.log(sortObjectDeeply(message))

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