sk8sta13 Postado Janeiro 29, 2015 Denunciar Share Postado Janeiro 29, 2015 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Unn Postado Janeiro 29, 2015 Denunciar Share Postado Janeiro 29, 2015 (editado) 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 Janeiro 29, 2015 por Unn Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 sk8sta13 Postado Janeiro 29, 2015 Autor Denunciar Share Postado Janeiro 29, 2015 (editado) 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 Janeiro 29, 2015 por sk8sta13 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
sk8sta13
Bom dia pessoal,
tenho a seguinte lista:
Quero ordenar para:
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
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.