Jquery遍历数组之$.inArray()方法介绍

$.inArray()函数用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回-1;

$.inArray(value,array)    --value是要查找的值,array是被查找的数组。

使用$.inArray()方法必须注意的点,否则会掉坑

(1)看如下代码:

        $(function () {
              var arr=[{"name":"张三"},{"name":"李四"},{"name":"王五"}];
              alert($.inArray({"name":"张三"}, arr));
        });

上面这段代码不仔细分析怎么看都没有错,但是返回值是-1。下面来分析下原因发现:

错误的原因是{"name":"张三"}和{"name":"张三"}是两个不同的引用;所以在arr数组里面找不到{"name":"张三"}这个对象;代码如果这样改就可以了

        $(function () {
            var obj = { "name": "张三" };
            var arr = [{ "name": "李四" }, obj, { "name": "王五"}];
            alert($.inArray(obj, arr));
        });

这段代码返回的就是1;返回值正常,这时的obj是{"name":"张三"}的引用;

(2)大家都知道javascript是一种弱类型语言,对于数字类型和字符类型,可以随意切换(例如:1+""="1");所以有以下一段代码:

        $(function () {
            var arr = [1, 2, 3, 4, 5];
            var a = 2;
            alert($.inArray(a, arr));
        });

这段代码返回正常值为1;

        $(function () {
            var arr = [1, 2, 3, 4, 5];
            var a = "2";
            alert($.inArray(a, arr));
        });

当把a的值改为字符串2返回值就出错了为-1;所以各位在使用这个$.inArray()方法时,一定要确保数据类型是一样的,虽然javascript是一种弱类型语言;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数说戏聊

00.数据结构关于浮点数运算的越界问题1.数据结构2.Pandas的两种常用数据结构3.Series系列4.DataFrame数据框

类似一维数组(ndarray)的对象,由一组数据(各种NumPy数据类型)以及与之相关的数据标签(索引)组成,用于存储一行或一列数据。

10610
来自专栏java学习

面试题37(关于运算符的理解?)

Considerthe following code: String s=null; Which code fragments cause an object ...

27360
来自专栏人工智能LeadAI

Python数据分析模块 | pandas做数据分析(一):基本数据对象

pandas有两个最主要的数据结构,分别是Series和DataFrame,所以一开始的任务就是好好熟悉一下这两个数据结构。 1、Series 官方文档: pa...

38550
来自专栏Brian

数据分析利器Pandas基本功能

---- 概述 pandas是基于Numpy构建的,让处理数据、分析数据和可视化数据都会变得更加简单,官网Pandas.正如官网所说: pandas is an...

50070
来自专栏用户2442861的专栏

python开发_json_一种轻量级的数据交换格式

==================================================

6310
来自专栏软件开发

JavaSE学习总结(八)—— 异常处理(Exception)

一、理解异常及异常处理的概念 异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。 异常不是错误 程序中关键的位置有异常处理,提高程序的稳定...

23490
来自专栏跟着阿笨一起玩NET

JSON学习总结

7610
来自专栏java学习

面试题45(关于修饰符的使用)

关于异常处理机制的叙述正确的是? ---- A default String s B public final static native int w( ) C...

29240
来自专栏三好码农的三亩自留地

5分钟彻底理解-Java自动装箱、拆箱

当表格中左边列出的基础类型与它们的包装类有如下几种情况时,编译器会自动帮我们进行装箱或拆箱.

42420
来自专栏雪胖纸的玩蛇日常

vue学习(1)

箭头函数的两个坑:1.this的指向发生了改变,指向定义对象时的对象window。2.arguments不能使用。

11010

扫码关注云+社区

领取腾讯云代金券