2013-08-03 2 views
2

J'ai un tableau contenant des références à divers objets.
La seule garantie que j'ai est que le tableau ne contient pas plusieurs références au même objet.
Plus précisément, je suis pas garanti que les objets contenus sont différents.Comment tester l'égalité de référence en Javascript?

Il y a un autre morceau de code qui me donne une référence à un objet, obj.
J'ai besoin de tester si obj est le dernier élément de mon tableau, et si cela est vrai, et obj répond à certaines exigences supplémentaires, je veux appeler pop sur ma matrice. Comment puis-je tester si obj était le dernier élément de mon tableau?

+0

Il est bien décrit dans la [documentation MDN] (https://developer.mozilla.org/fr-FR/docs/Web/JavaScript/Reference/Opérateurs/Comparison_Operators): * "Equal (' == '): [...] Si les deux opérandes sont des objets, JavaScript compare les références internes qui sont égales lorsque les opérandes se réfèrent au même objet dans la mémoire. "* –

Répondre

6

En JavaScript, === (et, en fait, ==) avec des références d'objet de tests la référence égalité (par exemple, qu'ils se réfèrent à l'objet même ).

Donc, pour gérer l'exigence

Il y a un autre morceau de code qui me donne une référence à un objet, obj. Je dois vérifier si obj est le dernier élément de mon tableau

... puis:

if (obj === array[array.length-1]) { 
    // It's the same object 
} 
+0

+ 1 merci, je me sens si stupide. :-) N'a pas réalisé '===' a un comportement différent pour les objets que les chaînes. – Mehrdad

+1

@Mehrdad: Pas besoin, nous sommes tous des chercheurs de connaissances. * (Il a dit gnomiquement.) * –

Questions connexes