博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript——数组的indexOf()方法在IE8中的兼容性问题
阅读量:4965 次
发布时间:2019-06-12

本文共 704 字,大约阅读时间需要 2 分钟。

昨天在工作中遇到一个问题:数组的indexOf()方法在IE8中无效。

如以下代码在IE8中报错“对象不支持“indexOf”属性或方法”:

var arr = [1,2,3];

var index = arr.indexOf(3);

 

解决方法1:在调用的indexOf方法前加上toString()将数组转换为字符串,再调用indexOf(),但是这时又发现3的index并不是我们预期的2,而是4,因为转换为字符串之后是"1,2,3",在查index的时候把逗号也算进去的了,显然这也不是我们想要的结果。只是说在判断一个对象a是否包含在某个数组arr中的时候,可以用arr.toString().indexOf(a)!=-1来判断,但是若是要查找a对象在数组arr中的准确index的时候,这种方法就不行了。

 

 

解决方法2:使用Jquery框架的$.inArray(查找对象,查找数组)。

使用此方法就能够获取对象在数组中的准确index,但是一定要注意数据类型,在调用这个方法的时候,Jquery不会去自动转换类型,查找对象 和 查找数组中的数据对象都需要是相同的类型才行,不然查到的结果就是-1

以上方法1是同事给我想的办法,因为当时的需求就只是判断对象是否在数组中,就使用了他介绍的方法1;方法2就是我上网查到的,建议用方法2。当然,indexOf对于数组来说,在IE9及以上、webkit内核的浏览器都是可以使用的,如果要兼容IE8,就需要使用到以上介绍的解决方法了。

转载于:https://www.cnblogs.com/burthughes/p/penguin_javascript.html

你可能感兴趣的文章
Longest Common Substring SPOJ - LCS (后缀自动机)
查看>>
jsoncpp简介、下载、编译、使用
查看>>
如何通过 AAR 形式集成 leakcanary-android 服务
查看>>
CodeForces Round #527 (Div3) D1. Great Vova Wall (Version 1)
查看>>
xvid x264
查看>>
置顶目录
查看>>
安装vue-cli过程中卡住
查看>>
脚本基础
查看>>
Windows的系统中DLL文件详解
查看>>
sql server 语句
查看>>
Redis-客户端缓冲区 output buffer
查看>>
[原创]X-HDL 4.2安装与使用
查看>>
iOS开发技巧(1)
查看>>
校内测试618
查看>>
hive中的with用法
查看>>
运维自动化之1 - ansible 批量主机管理
查看>>
Python开发【第十五篇】:Web框架之Tornado
查看>>
HTML表格边框的设置小技巧-表格
查看>>
Java内存回收 - 落日之心的日志 - 网易博客
查看>>
汇编语言-数据表示
查看>>