Struppi: Vergleich zweier gleicher Arrays gibt false zurück

Beitrag lesen

== vergleicht bei Objekten (Arrays sind in JS Objekte) nur, ob die Variablen eine Referenz auf's gleiche Objekt sind, nicht jedoch auf Gleichheit des Objektinhalts.
Ok, danke für die Erklärung. Irgendwie kann ich das aber nicht so richtig gut finden. Wenn man so einen Vergleich macht dann will man doch eigentlich fast immer dass da true rauskommt.

Tut es ja auch, wenn es die gleichen Objekte sind.
Wenn du wissen willst ob bestimmte Eigenschaften (z.b. der Array inhalt) gleich sind, wird z.b. in Java der Gleichheitsoperator überladen mit eine equals() Funktion, in Javascript leider nicht.

In deinem Fall müßte es so aussehen:

Array.prototype.equals = function(p) {  
 if(this.length != p.length) return false;  
 for(var i = 0; i < this.length; i ++) if( this[i] != p[i]) return false;  
 return true;  
}  
alert( [1].equals([1]));

Struppi.