Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Unterstützt die inArray-Methode von Jquery die Beurteilung von Objekten nicht?

Dies funktioniert, wenn das Array-Element eine Zahl oder eine Zeichenfolge ist, aber nicht, wenn es ein Objekt ist

漂亮男人漂亮男人2711 Tage vor900

Antworte allen(3)Ich werde antworten

  • PHP中文网

    PHP中文网2017-05-19 10:25:32

    js 中对象是引用类型值,两个对象的比较是引用的内存地址的比较。就像下面的代码:

    var obj1={};
    var obj2={};
    obj1===obj2     //false
    

    这两个对象虽然看起来相等,但是引用的是堆内存中不同的对象,所以不相等。

    inArray 的实现应该就是遍历数组,把数组的每一项与目标值进行比较,如果相等就返回索引值,不相等就返回 -1,由于上面的原因,两个分别声明的对象引用值并不相等,所以返回 -1。

    Antwort
    0
  • 阿神

    阿神2017-05-19 10:25:32

    一般这样理解,数组是一个对象,但是对象不一定是数组。inArray作用于数组

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:25:32

    源码中isArray: Array.isArray,用的是Array.isArray, 里面是object也可以啊,但外层必须是[]。

    var obj = [{a:1}];
    console.log(Array.isArray(obj))  // true

    Antwort
    0
  • StornierenAntwort