处理数组的forEach map filter的兼容性

处理数组的forEach

1     //forEach处理
2     if(!Array.prototype.forEach) {
3         Array.prototype.forEach = function (callback) {
4             for(var i=0,len=this.length;i<len;i++) {
5                 callback(this[i], i);
6             }
7         }
8     }

处理数组的map

 1     //处理map
 2     if(!Array.prototype.map) {
 3         Array.prototype.map = function (callback) {
 4             var arr = [];
 5             for(var i=0,len=this.length;i<len;i++) {
 6                 arr.push(callback(this[i], i));
 7             }
 8             return arr;
 9         }
10     }

//处理数组的filter

 1     //处理filter
 2     if(!Array.prototype.filter) {
 3         Array.prototype.filter = function (callback) {
 4             var arr = [];
 5             for(var i=0,len=this.length;i<len;i++) {
 6                 if(callback(this[i], i)) {
 7                     arr.push(this[i])
 8                 }
 9             }
10             return arr;
11         }
12     }
时间: 2024-08-03 07:06:25

处理数组的forEach map filter的兼容性的相关文章

ES5中Array新增加的API接口 forEach map filter some every indexOf lastIndexOf reduce reduceRight

var array = [23,48,66,2]; forEach:循环.遍历数组:没有返回值.与for循环类似 array.forEach(function( value, index, array ) { console.log(value); return value * value; } ); map:映射的意思,映射返回一个新数组,有返回值;filterArr:返回一个新对象 var mapArr = array.map(function(value, index, array ){

forEach, map, filter方法区别

听说for循环已经成了菜鸟标配...? 瑟瑟发抖 赶紧找来资料补一补 1, forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度 2, map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变 3,filter函数, 过滤通过条件的元素组成一个新数组, 原数组不变 4, some函数,遍历数组中是否有符合条件的元素,返回Boolean值 5,every函数, 遍历数组中是否每个元素都符合条件, 返回Boolean值 原文引用:htt

数组那些事(slice,splice,forEach,map,filter等等)

周五,再过会要下班了,刚才把<javascript高级程序设计>数组这块又看了下,加深下记忆.今天来继续练练笔,嘿嘿!(写下自己印象不深的东西) 一.数组的定义(数组定义分为两种) 方法一:1 var color=new Array(num);//num为数字,(当然可写,可不写) 表示数组长度 var color=new Array("red","yellow");//直接定义数组内容 方法二: 2.var color=[];//当然也可以定义的时候直

js数组遍历some,foreach,map,filter,every对比

1. [...].some(ck)函数       ----      某个一个为true,则为true 对数组中每个元素执行一次ck函数,知道某个元素返回true,则直接返回true.如果都返回false,则返回false 检查整个数组中是否有满足ck函数的元素. var result = [1,5,3,6].some(  (v,i)  =>  (v>10) )      //所有元素都不满足,返回result = false var result = [10,5,30,60].some(

数组方法重写:forEach, map, filter

Array.prototype.myForEach = function(fn) { var arr = this, len = arr.length, arg2 = arguments[1] || window; for(var i = 0; i < len; i++) { fn.apply(arg2, [arr[i], i, arr]); } }; Array.prototype.myFilter = function(fn) { var arr = this, len = arr.leng

JS中some(),every(),forEach(),map(),filter()区别

map():返回一个新的Array,每个元素为调用func的结果 filter():返回一个符合func条件的元素数组 some():返回一个boolean,判断是否有元素是否符合func条件 every():返回一个boolean,判断每个元素是否符合func条件 forEach():没有返回值,只是针对每个元素调用func API的区别 function my_func(item) { if (item == 1) { console.log('t'); return true; } con

ES6 数组函数forEach()、map()、filter()、find()、every()、some()、reduce()

forEach() map()- -更新数组 filter().includes().find().findIndex()- -筛选(删除)数组 some().every()- -判断数组 reduce()- -叠加数组 arr.forEach() 遍历数组全部元素,利用回调函数对数组进行操作,自动遍历数组.length次数,且无法break中途跳出循环 因此不可控 不支持return操作输出,return只用于控制循环是否跳出当前循环 因此难操作成新数组,新值,故不作多分析 示例: var a

Array 的五种迭代方法 -----every() /filter() /forEach() /map() /some()

ES5定义了五个迭代方法,每个方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象(可选的),作用域对象将影响this的值.传入这些方法中的函数会接收三个参数:数组的项的值.该项在数组中的位置和数组对象本身. 1.every() 和 some() every()是对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true. some()是对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true. every()和some()很相似,他们都用于

JavaScript中的数组遍历forEach()与map()方法以及兼容写法

原理: 高级浏览器支持forEach方法 语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文: forEach:用来遍历数组中的每一项:这个方法执行是没有返回值的,对原来数组也没有影响: 数组中有几项,那么传递进去的匿名回调函数就需要执行几次: 每一次执行匿名函数的时候,还给其传递了三个参数值:数组中的当前项item,当前项的索引index,原始数组input: 理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改:但是我