关于ES5数组方法总结

  • indexOf 查找数组内指定元素的位置,从前往后查找,查找到后返回其索引值,没有查找到返回-1
 var arr=[1,2,3,4,5]
        console.log(arr.indexOf(2))   //返回值是1
  • laseindexOf(element) 从后往前查找数组内制定元素的位置。
var arr=[1,2,3,2,5]
        console.log(arr.lastIndexOf(2))
        console.log(arr)    //  最后结果为 3  [1,2,3,2,5]
  • forEach 遍历数组,参数为一个回调函数,其中回调函数有三个参数:1、当前元素;2、当前元素索引值;3、整个数组

注意:forEach改变了原数组

 var arr=[1,2,3,2,5]
            arr.forEach(function(e,i){
                arr[i] = e+1
            })
        console.log(arr)          // 最后结果为[2,3,4,3,6]
  • map 遍历数组,返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组,且不改变原数组。
 var arr=[1,2,3,2,5]
            arr2=arr.map(function(val){
                return val*val
            })
        console.log(arr2)      //  最后输出结果为 [1,4,9,4,25]
        
  • every(function(element,index,array)) 该函数类似于逻辑判定,回调函数返回一个布尔值。every是指所有函数每个回调函数都返回是true的时候才会返回true,当遇到false时自动终止执行,返回false。
 var arr=[1,2,-1,2,5]
            
        console.log(arr.every(function(val){
                return val>0
            }))                                       // 最后返回false
  • some(function(element,index,array)) 该函数类似于逻辑判定,回调函数返回一个布尔值。some是存在有一个回调函数返回true的时候终止执行并返回true,否则返回false。
 var arr=[-1,-2,-1,2,-5]
            
        console.log(arr.some(function(val){
                return val>0
            }))             //  最后返回值是 true
  • .filter(function(element)) 返回数组的一个子集,回调函数用于逻辑判断是否返回,返回true则把当前元素加入到返回数组中,false则不加
  var arr=[1,2,3,4,5]
            
        console.log(arr.filter(function(val){
                return val%2 === 0
            }))                   // 最后的结果是[2,4]
  • reduce(function(v1,v2),value) 遍历数组,调用回调函数,将数组元素组合成一个值,reduce从索引最小值开始。1、回调函数:把两个值合为一个,并返回结果;2、value是一个初始值,可选
 var arr=[1,2,3,4,5]
            
        console.log(arr.reduce(function(v1,v2){
            return v1+v2
        }))          //  最后结果是15

实现一个reduce函数,作用和原生的reduce类似下面的例子。
Ex:var sum = reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0); => 6
代码如下:

 
            function reduce(arr,iterate,value){
                var tamarr = (value === undefined ? []:[value].concat(arr))
                while (tamarr.length >1) {
                    tamarr.splice(0,2,iterate(tamarr[0],tamarr[1]))
                }
                return tamarr[0];
            }
            var sum = reduce([3,5,6],function(v1,v2){return v1+v2},10)
            console.log(sum)   //  输出结果为24

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,265评论 0 6
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,406评论 0 2
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,236评论 0 13
  • 每个女生应该都有一个闺蜜吧,可能不是朋友中认识时间最长的,可能你们的性格有很多差异,但是你们将彼此视为自己的知己。...
    刘summer阅读 433评论 0 0
  • 她来我家做客,事先没电话也没约定,出乎意料。 她是来我家的第四个女孩,前面三个是我姐的朋友。 尴尬的是我家...
    偶有所思阅读 308评论 0 0