数组遍历-ES6

  1. forEach 遍历数组 不支持跳出,无返回值
    /**
         * forEach 数组遍历 中途不能跳出 和for遍历最大的区别
         * 它的参数是一个回掉函数
         * 该回掉函数的参数:
         * item: 数组的每一项
         * index: 下标
         */ 
        arr.forEach(function fn(item,index){
            // do something
        })
  2. some,every 支持中途跳出,有返回值
    /**
         * some和every 参数和forEach一样 
         * some 遇到一个true 就终止遍历 返回true 否则返回 false
         * every 遇到一个false 就终止遍历 返回false 否则返回 true
         * @return {Boolean} 
         */
        var flag=arr.some(function(item,index){
            // 这里只会遍历到第一项 后面都不会遍历
            // 这里我们优化一下上个列子,这里只会遍历前2项
            if(index==1){
                // do something
            }
            return index==1
        })
  3. find,findIndex 支持中途跳出,有返回值
    /**
         * find,findIndex 参数和forEach一样 
         * find 遇到一个true 就终止遍历 返回满足条件的那一项 否则返回 空对象
         * findIndex 遇到一个true 就终止遍历 返回满足条件的那一项的下标 否则-1
         * @return  
         */
        var index=arr.findIndex(function(item,index){
            // 这里只会遍历到满足条件的那一项 后面都不会遍历
            return item.name=='b'
        })
        console.log(index)
        //  index: 1
        var obj=arr.find(function(item,index){
            // 这里只会遍历到满足条件的那一项 后面都不会遍历
            return item.name=='b'
        })
        console.log(obj)
        //{name: "b", age: 12}
  4. includes 判断数组是否包含某元素,返回一个Boolean
      /**
         * includes  判断是===
         * 不适合判断数组对象 除非数组中是对象的引用
         * 适合String  number基本类型数组
         * @return {Boolean} 
         */
    
        [1,2,3].includes('1') // false
        [1,2,3].includes(1) // true
        arr.includes({name: 'a',age: 11}) //false
  5. reduce  这个比较复杂,下篇详解

猜你喜欢

转载自www.cnblogs.com/little-oil/p/12134080.html