"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso classificar uma matriz de objetos por uma chave de data usando JavaScript?

Como posso classificar uma matriz de objetos por uma chave de data usando JavaScript?

Publicado em 2024-12-21
Navegar:718

How can I sort an array of objects by a date key using JavaScript?

Classificando uma matriz de objetos por chave de data usando JavaScript

Classificar uma matriz de objetos com base em uma chave com valor de data específica é uma tarefa comum em programação JavaScript. Neste caso, precisamos classificar um array de objetos pela chave 'updated_at', que representa uma data e hora.

A maneira mais eficiente de conseguir isso é usar o método Array.sort() em combinação com uma função de comparação. A função de comparação recebe dois objetos como entrada e retorna um valor que determina a ordem dos objetos.

Veja como você pode fazer isso:

const objects = [{
                    "updated_at": "2012-01-01T06:25:24Z",
                    "foo": "bar"
                },
                {
                    "updated_at": "2012-01-09T11:25:13Z",
                    "foo": "bar"
                },
                {
                    "updated_at": "2012-01-05T04:13:24Z",
                    "foo": "bar"
                }];

// Convert the 'updated_at' strings to JavaScript Date objects
for (let i = 0; i < objects.length; i  ) {
    objects[i].updated_at = new Date(objects[i].updated_at);
}

// Sort the objects based on the 'updated_at' dates
objects.sort((a, b) => {
    return a.updated_at - b.updated_at;
});

console.log(objects);

Neste código, primeiro convertemos as strings 'updated_at' em objetos JavaScript Date para garantir tipos de dados consistentes. Em seguida, usamos o método sort() com uma função de comparação que subtrai os valores ‘updated_at’ de dois objetos e retorna o resultado. Este resultado determina a ordem de classificação: se o resultado for negativo, o primeiro objeto vem antes do segundo; se positivo, o segundo objeto vem primeiro; se for zero, os objetos permanecem em sua ordem original.

O resultado final é uma matriz ordenada de objetos, com os valores-chave 'updated_at' em ordem cronológica crescente.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3