0

Hola amigos quiero saber si se puede ordenar un array Json que sea primero mensual ,bimestral,trimestral,semestral,anual, en ese orden.Gracias .

let fecha = [
    {
        "COD": 1,
        "DES": "Anual"
    },
    {
        "COD": 2,
        "DES": "Semestral"
    },
    {
        "COD": 3,
        "DES": "Mensual"
    },
    {
        "COD": 4,
        "DES": "Bimestral"
    },
    {
        "COD": 5,
        "DES": "Trimestral"
    }
]

console.log(fecha)
Alex
  • 129
  • 2
  • 14
  • [JSON !== Objeto Javascript](https://es.stackoverflow.com/questions/164943/cu%c3%a1l-es-la-diferencia-entre-json-y-un-objeto-en-javascript/164944#164944) – Pablo Lozano Jun 06 '19 at 20:37

1 Answers1

0

Como se encuentra estructurado tu objeto JSON solo podrías ordenar por el campo COD o por el campo DES, para lograr que quede en el orden que deseas, debes agregar un campo extra para almacenar el orden. Por último usar el método Array.sort(). En este caso agregué un campo con el número de meses (NUM) para establecer el orden.

var input = [
    {
        "COD": 1,
        "DES": "Anual",
        "NUM": 12
    },
    {
        "COD": 2,
        "DES": "Semestral",
        "NUM": 6
    },
    {
        "COD": 3,
        "DES": "Mensual",
        "NUM": 1
    },
    {
        "COD": 4,
        "DES": "Bimestral",
        "NUM": 2
    },
    {
        "COD": 5,
        "DES": "Trimestral",
        "NUM": 3
    }
];

var output = input.sort((a, b) => a.NUM < b.NUM);

Referencia: https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/sort