Ir para conteúdo
Fórum Script Brasil
  • 0

Ordenar uma lista


sk8sta13

Pergunta

Bom dia pessoal,

tenho a seguinte lista:

var x = {0: "C", 1: "A", 2: "T"}

Quero ordenar para:

var x = {1: "A", 0: "C", 2: "T"}

Já tentei de algumas formas, mas sem sucesso...

Essa lista vem de um json, quando o json sai do php já ta ordenado, mas quando chega no js fica como no primeiro exemplo.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Infelizmente não é possível fazer essa operação mantendo os índices numéricos, pois eles serão alterados internamente para melhor otimização do JS.

Contudo se apenas a ordenação for importante, você pode fazer o seguinte:

var x = { "1": "A","0": "C", "2": "T"}

function order(obj){
   var retorno = [];

   for(var i in obj){
     retorno.push(obj[i]);
   }

   return retorno.sort();
}

console.log(order (x));
Editado por Unn
Link para o comentário
Compartilhar em outros sites

  • 0

Consegui resolver mantendo a relação "chave valor" assim:

Object.sortByKeys = function(myObj){
    var keys = Object.keys(myObj)
    keys.sort()
    var sortedObject = Object()
    for(i in keys){
        key = keys[i]
        sortedObject[key]=myObj[key]
    }
    return sortedObject
};

Object.invert = function (obj) {
    var new_obj = {};
    for (var prop in obj) {
        if(obj.hasOwnProperty(prop)) {
            new_obj[obj[prop]] = prop;
        }
    }
    return new_obj;
};

var x = {0: "C", 1: "A", 2: "T"}

x = Object.sortByKeys(Object.invert(x));
console.log(x); 

//Object{A: "1", C: "0", T: "2"}
Editado por sk8sta13
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...