JS模拟实现ECMAScript5新增的数组方法

前端之家收集整理的这篇文章主要介绍了JS模拟实现ECMAScript5新增的数组方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

ECMAScript5 新增了十个数组方法,这些方法只有在ie9及以上浏览器中可以被使用,下面是对于这些方法的模拟实现。

一、Array.isArray(element)

  该方法用于判断传入的对象是否为数组类型,返回true和false。

二、.indexOf(element)

  该方法用于查找传入对象在数组中的位置,并返回该位置,若没有找到则返回-1,该方法不能用于寻找undefined。

  indexOf方法可以和~符配合使用。按位运算符~会将传入数字取反并减一,所以-1就会变成0,这时候把它放在判断条件中会被隐式转换为false。

三、lastIndexOf(element)

  该方法与indexOf(element)作用和返回值相同,唯一不同的地方是它是从右向左寻找。

= 0; i--){ if(this[i] === element && this[i] !== undefined){ index = i; break; } } return index; }; var a = [1,5,3]; console.log(a.newLastIndexOf(undefined));

四、forEach(function(element,index,array){})

  遍历数组,参数为一个回调函数,有三个传参:当前元素、当前元素索引、整个数组,该方法会跳过保留缺失成员,不会破坏原数组。

五、every(function(element,array){})

  使用传入的回调函数遍历数组,当所有回调都返回true时,every方法返回true,否则返回false。该方法会跳过保留缺失成员,不会破坏原数组。

 

六、some(function(element,array){})

  使用传入的回调函数遍历数组,当有回调返回true时,some方法返回true,否则返回false。该方法会跳过保留缺失成员,不会破坏原数组。

 七、map(function(element,array){})

  使用传入的回调函数遍历数组,使用遍历数组返回的内容组成一个新的数组,该方法会跳过空元素,但是最终结果保留缺失成员的位置,不会破坏原数组。

八、filter(function(element,array){})

  使用传入的回调函数遍历数组,最终返回一个新数组,该数组中包含所有回调函数返回true的元素,不会破坏原数组。

九、reduce(function(accumulator,currentValue,currentIndex,array){})

  使用传入的回调函数遍历数组,返回最后一个回调函数调用的返回值,跳过缺失成员,不会破坏原数组。 

十、reduceRight(function(accumulator,array){})

  该方法作用于reduce相同,唯一区别是它是从右往左开始遍历。

= 0; i--){ if(i in this){ if(!result){ result = this[i]; }else{ result = fn(result,7]; console.log(a.newReduceRight(function(a,b){ console.log(arguments); return a + b; }))

以上所述是小编给大家介绍的JS模拟实现ECMAScript5新增的数组方法。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

猜你在找的JavaScript相关文章