Heim > Web-Frontend > js-Tutorial > Hauptteil

So vergleichen Sie zwei Objekte auf Gleichheit in JavaScript

不言
Freigeben: 2019-02-25 10:29:53
nach vorne
2973 Leute haben es durchsucht

In diesem Artikel geht es um die Methode zum Vergleichen zweier Objekte auf Gleichheit in JavaScript. Ich hoffe, dass er für Freunde hilfreich ist.

Das ist eine Frage, die mir der Interviewer in einem Interview gestellt hat

In dieser Interviewfrage bezieht sich

Gleichheit: auf die Anzahl der Attribute des Objekts Gleichheit

Es gibt zwei obj

let obj1 = {
    name:'李德华',
    age:18,
    price:NaN
}

let obj2 = {
    name:'张德华',
    age:18,
    price:NaN
}
Nach dem Login kopieren

Eine Lösung, die mir einfällt

function compare(obj1,obj2){
    if(Object.keys(obj1).length != Object.keys(obj2).length){
      return false
    }else{
      for(key in obj1){
        if(obj2.hasOwnProperty(key)){
            if( !Object.is(obj1[key],obj2[key])){
                return false;
            }
        }else{
          return false
        }
      }
      return true
    }
}
Nach dem Login kopieren

Über den Lösungsprozess nachdenken

  • Weil obj nein hat Länge. Ich kann es nur über Object.keys()

  • in ein Array konvertieren, um den zweiten Schritt einzugeben und zu überprüfen, ob die Attribute im Objekt in einem anderen Objekt vorhanden sind. Object.hasOwnProperty() wird hier nur zum Vergleichen der Eigenschaften im Objekt verwendet (um zu verhindern, dass obj die Eigenschaften des übergeordneten Objekts erbt).

  • trägt die Grundlage für den zweiten Schritt zum Vergleichen der Eigenschaftswerte . Vergleichen. Object.is() in ES6, um das Problem zu vermeiden, dass NaN nicht sich selbst entspricht

oder verwenden Sie _.isEqual

in Underscore.js

Das obige ist der detaillierte Inhalt vonSo vergleichen Sie zwei Objekte auf Gleichheit in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage