Maison > Questions et réponses > le corps du texte
Cela fonctionne lorsque l'élément du tableau est un nombre ou une chaîne, mais pas lorsqu'il s'agit d'un objet
PHP中文网2017-05-19 10:25:32
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é.
阿神2017-05-19 10:25:32
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
習慣沉默2017-05-19 10:25:32
Dans le code source, isArray : Array.isArray est utilisé. Il peut également contenir des objets à l'intérieur, mais la couche externe doit être [].
var obj = [{a:1}];
console.log(Array.isArray(obj)) // true