"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 comparar matrizes de objetos em JavaScript: um guia abrangente

Como comparar matrizes de objetos em JavaScript: um guia abrangente

Publicado em 2024-11-08
Navegar:790

How to Compare Arrays of Objects in JavaScript: A Comprehensive Guide

Comparando matrizes de objetos em JavaScript: um guia abrangente

Introdução:
Na codificação JavaScript, há muitas vezes surge a necessidade de comparar matrizes de objetos. No entanto, os objetos podem possuir propriedades variadas com valores ausentes, complicando o processo de comparação.

Abordagem de força bruta:
Um método direto é iterar em cada array e comparar os valores de as oito propriedades individualmente. No entanto, isso pode se tornar tedioso e ineficiente.

Uma solução elegante:

1. Comparação de propriedades de contagem:
Para superar esses desafios, você pode utilizar as seguintes etapas:

  • Conte o número de propriedades em ambos os objetos. Se forem diferentes, os objetos não são iguais.
  • Para cada propriedade, compare seus valores em ambos os objetos. Se algum desses valores variar, os objetos não são iguais.

2. Métodos Object.keys() e Every():
Implementar esta técnica em JavaScript é simples usando as funções Object.keys() e every():

const objectsEqual = (o1, o2) =>
    Object.keys(o1).length === Object.keys(o2).length
        && Object.keys(o1).every(p => o1[p] === o2[p]);

Exemplo de uso:

const obj1 = { name: 'John', age: 33};
const obj2 = { age: 33, name: 'John' };
const obj3 = { name: 'John', age: 45 };

console.log(objectsEqual(obj1, obj2)); // true
console.log(objectsEqual(obj1, obj3)); // false

Este método garante uma comparação confiável de matrizes de objetos, independentemente da contagem de propriedades ou valores ausentes.

Declaração de lançamento Este artigo é reproduzido em: 1729418656 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
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