recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - La méthode inArray de Jquery ne prend-elle pas en charge l'évaluation des objets?

Cela fonctionne lorsque l'élément du tableau est un nombre ou une chaîne, mais pas lorsqu'il s'agit d'un objet

漂亮男人漂亮男人2845 Il y a quelques jours998

répondre à tous(3)je répondrai

  • PHP中文网

    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é.

    répondre
    0
  • 阿神

    阿神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

    répondre
    0
  • 習慣沉默

    習慣沉默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

    répondre
    0
  • Annulerrépondre