JavaScript数组操作——遍历方法的兼容
1.1概述
ECMA Script5中数组方法如indexOf()、forEach()、map()、filter()、some()不支持IE6~8。
1.2兼容写法
以下兼容性写法均可兼容至IE6。
1.2.1indexOf()方法兼容
if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(ele) { var len = this.length; //获取数组长度 var fromIndex = Number(arguments[1]) || 0; //检查值为数字的第二个参数是否存在,默认值为0 //当第二个参数小于0时,为倒序查找,相当于查找索引值为该索引加上数组长度后的值 if(fromIndex < 0) { fromIndex += len; } //从fromIndex起循环数组 while(fromIndex < len) { //检查fromIndex是否存在且对应的数组元素是否等于ele if(fromIndex in this && this[fromIndex] === ele) { return fromIndex; } fromIndex++; } //当数组长度为0时返回不存在的信号:-1 if (len === 0) { return -1;} } }
1.2.2 forEach()方法兼容
if ( !Array.prototype.forEach) { Array.prototype.forEach = function forEach(callback) { var len = this.length; if(typeof callback != "function") { throw new TypeError(); } //thisArg为callback 函数的执行上下文环境 var thisArg = arguments[1]; for(var i = 0; i < len; i++) { if(i in this) { //callback函数接收三个参数:当前项的值、当前项的索引和数组本身 callback.call(thisArg, this[i], i, this); } } } }
1.2.3 map()方法兼容
if (!Array.prototype.map) { Array.prototype.map = function(callback) { var len = this.length; if(typeof callback != "function") { throw new TypeError(); } //创建跟原数组相同长度的新数组,用于承载经回调函数修改后的数组元素 var newArr = new Array(len); var thisArg = arguments[1]; for(var i = 0; i < len; i++) { if(i in this) { newArr[i] = callback.call(thisArg, this[i], i, this); } } return newArr; } }
1.2.4 filter()方法兼容
if (!Array.prototype.filter) { Array.prototype.filter = function(callback) { var len = this.length; if(typeof callback != "function") { throw new TypeError(); } //创建新数组,用于承载经回调函数修改后的数组元素 var newArr = new Array(); var thisArg = arguments[1]; for(var i = 0; i < len; i++) { if(i in this) { if(callback.call(thisArg, this[i], i, this)) { newArr.push(val); } } } return newArr; } }
1.2.5 some()方法兼容
if (!Array.prototype.some) { Array.prototype.some = function(callback) { var len = this.length; if(typeof callback != "function") { throw new TypeError(); } var thisArg = arguments[1]; for(var i = 0; i < len; i++) { if(i in this && callback.call(thisArg, this[i], i, this)) { return true; } } return false; } }
1.2.6 every()方法兼容
if (!Array.prototype.every) { Array.prototype.every = function(callback) { var len = this.length; if(typeof callback != "function") { throw new TypeError(); } var thisArg = arguments[1]; for(var i = 0; i < len; i++) { if(i in this && !callback.call(thisArg, this[i], i, this)) { return false; } } return true; } }
发表评论
-
JavaScript中对象的总结
2018-03-10 10:43 573JavaScript中对象的总结 1. ... -
JS数字指定长度不足前补零的实现
2018-03-10 10:25 12392JS数字指定长度不足前补零的实现 问题描述: ... -
银行卡卡号校验——Luhn算法
2017-11-06 09:34 2436银行卡卡号校验——Luhn算法 1.1 Luhn简介 ... -
Javascript数组操作
2017-11-04 14:17 758Javascript数组操作 1.1颠倒数组元素顺序 1.1. ... -
获取select标签选中值
2017-11-03 08:54 1363获取select标签选中值 1.1实例讲解 <!DOCT ... -
表单提交前的验证方式——form的onsubmit事件
2017-10-30 14:21 8248表单提交前的验证方式——form的onsubmit事件 1.1 ... -
document.forms用法详解
2017-10-30 11:20 2684document.forms用法详解 1.1概述 ... -
js模拟表单post方式提交
2017-10-30 09:44 2093js模拟表单post方式提交 1.1概述 用j ... -
Form表单提交,页面不跳转的方法
2017-10-18 15:09 5635Form表单提交,页面不跳转的方法 1.1 解决方案一 ... -
javascript定时功能详解
2017-09-24 15:05 712javascript定时功能详解 1. ... -
js程序中$符号详解
2016-09-14 11:13 672js程序中$符号详解 $符号在php中是表示变 ... -
JS比较运算符之等于与不等于详解
2016-07-05 17:56 1823JS比较运算符之等于与不等于详解 1.1等于(==)与不等于( ... -
JS in的用法
2016-04-24 22:20 2308JS in的用法 1.1简介 JavaScript中的in 操 ... -
JS 访问对象中数据易错点总结
2016-04-16 16:07 460JS 访问对象中数据易错点总结 1.1访问Hash中的键值 例 ... -
JS number保留整数及n位小数的方法
2016-04-16 15:27 2720JS number保留整数及n位小 ... -
if语句中使用多个条件的优化
2016-04-16 11:31 6993if语句中使用多个条件 ...
相关推荐
Javascript中二维数组的遍历,上次碰到的时候有点迷惑,找了很多资料,最后整理的精华
本篇文章主要介绍了Javascript 数组循环遍历之forEach详解,对学习forEach有很好的帮助,有需要的可以了解一下。
第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11...
主要介绍了JS中数组与对象的遍历方法,结合实例形式总结分析了JavaScript针对数组与对象遍历操作相关函数与使用技巧,需要的朋友可以参考下
JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)...
资源名称:Javascript数组及其操作 WORD版内容简介:本文档主要讲述的是Javascript数组及其操作;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看 资源太大,传百度网盘了,链接在附件中,有...
Javascript数组及其操作
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍_.docx
Javascript数组操作整理.rarJavascript数组操作整理.rar
第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组及应用.rar第6节 JavaScript数组...
javascript数组有哪些常见的方法_javascript数组有什么方法.docx
JavaScript 1.8.5 英文第四章 数组与函数数组遍历
javascrip:遍历文件填充数组 javascrip:遍历文件填充数组 javascrip:遍历文件填充数组 javascrip:遍历文件填充数组 javascrip:遍历文件填充数组 javascrip:遍历文件填充数组
文中的范例基于以下...1. javascript遍历的常用的遍历方法是for循环和for-in,ES5的时候加上了forEach方法(IE9以下不支持)。 /****js原生遍历****/ //for循环遍历数组 for(var i=0;i<arrTmp.length;i++){ con
数组乱序 javascript
JavaScript数组合并的多种方法_.docx
这是一个针对JavaScript数组的添加和删除的方法
主要介绍了javascript数组遍历的方法,结合实例形式分析了javascript数组遍历及相关的some、every、filter、map等方法的使用技巧,需要的朋友可以参考下
主要介绍了JS遍历JSON数组及获取JSON数组长度操作,涉及javascript简单json数组遍历与运算相关操作技巧,需要的朋友可以参考下