Les objets en js sont des valeurs de type référence, et la comparaison de deux objets est la comparaison des adresses mémoire référencées. Tout comme le code suivant :
var obj1={};
var obj2={};
obj1===obj2 //false
Bien que ces deux objets semblent égaux, ils font référence à des objets différents dans la mémoire du tas, ils ne sont donc pas égaux.
L'implémentation de inArray devrait consister à parcourir le tableau, à comparer chaque élément du tableau avec la valeur cible, si elle est égale, à renvoyer la valeur d'index, si elle n'est pas égale, à renvoyer -1 Pour les raisons ci-dessus, deux séparément. références d'objet déclarées Les valeurs ne sont pas égales, donc -1 est renvoyé.
Les objets en js sont des valeurs de type référence, et la comparaison de deux objets est la comparaison des adresses mémoire référencées. Tout comme le code suivant :
Bien que ces deux objets semblent égaux, ils font référence à des objets différents dans la mémoire du tas, ils ne sont donc pas égaux.
L'implémentation de inArray devrait consister à parcourir le tableau, à comparer chaque élément du tableau avec la valeur cible, si elle est égale, à renvoyer la valeur d'index, si elle n'est pas égale, à renvoyer -1 Pour les raisons ci-dessus, deux séparément. références d'objet déclarées Les valeurs ne sont pas égales, donc -1 est renvoyé.
Il est généralement entendu qu'un tableau est un objet, mais l'objet n'est pas nécessairement un tableau. inArray fonctionne sur les tableaux
Dans le code source, isArray : Array.isArray est utilisé. Il peut également contenir des objets à l'intérieur, mais la couche externe doit être [].