javascript - Jquery 的 inArray 方法不支持判断对象吗?
漂亮男人
漂亮男人 2017-05-19 10:23:32
0
3
917

当数组元素是数字或者字符串的时候都可以,要是 object 就不行了

漂亮男人
漂亮男人

全部回复(3)
Ty80

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

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

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

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

阿神

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

習慣沉默

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

var obj = [{a:1}];
console.log(Array.isArray(obj))  // true
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!