笔记:es6新增数组方法forEach、map、filter、indexOf、sort

forEach

  • 和for循环一样都是用来遍历数组的+
  • 语法:arr.forEach(function(item,index,array){
    数组里面有多少元素,函数就执行多少次
  • 参数
    • 第一个形参:item,表示本次元素循环到的数组元素的值
    • 第二个形参:idenx,表示本次当前数组索引
    • 第三个形参:array,表示当前正在循环的数组
      }
        arr.forEach(function(value,i,array){
           console.log('=========================')
           console.log('本次循环到的是第'+i+'个数组元素')
           console.log('本次循环到的数组元素是'+value)            
       })
        console.log(result)

map

  • forEach类似,只不过可以堆数组中的每一项,返回一个新的数组
  • 语法: function(item,index,array){
    • 参数功能和forEach一样
    • 不过返回值是一个新的数组
      }
		var arr=[1,3,5,7,9]
	
		var newarr=arr.map(item,index,arr){
		  // 在这个函数里面可以对原数组的每一项进行操作
		  //类似于for of
          // 这个函数的返回值就是新数组里面的其中一个元素
		var temp=item*10
		return temp		
		}
		console.log(newarr)   // logs ==> [10, 30, 50, 70, 90]
		

filter

  • forEach类似,但是可以按照我们的条件进行筛选数组
  • 把原始数组中符合条件的筛选出来,组成一个新的数组返回
  • 语法arr.fliter(function(item,index,array){
    • 有多少元素就遍历多少次
    • 不过返回值是一个新的数组
    • 当遍历到一个元素item,如果本次return true说明符合条件,则返回该值
    • 当遍历到一个元素item,如果本次return flase说明不符合条件,则不返回该值
      })
        var arr2 = [2000,3000,4000,5000,7000,10000,20000]
        var result = arr2.filter(function(item){
            if(item>5000){
                return true;
            }else{
                return false;
            }
        })
        console.log(result)   //logs ==>  [7000,10000,20000]

indexOf

  • 用来找到数组中某一项的索引
  • 语法: arr.indexOf(“字符串”)
  • 如果找到了,返回索引,number类型
  • 如果没有找到,返回-1
   var arr = ['hello','world','xiaoli',123,'xiaowang',56]
       
        var index = arr.indexOf(123);//index是number类型
        console.log(index)   //logs==> 3
        var index2 = arr.indexOf('laowang');
        console.log(index2)  //logs==>  -1

sort排序

arr.sort([排序函数])

  • 元素默认按照转换为的字符串的各个字符的Unicode编码进行排序
  • 排序函数可以执行排序规则
  • 语法: arr.sort(function(a,b){
    • 参数
    • a:第一个比较的元素
    • b:第二个比较的元素
    • 如果返回值< 0 ,那么 a 会被排列到 b
    • 如果返回值== 0,a 和 b 的相对位置不变
    • 如果返回值> 0 ,b 会被排列到 a 之前
      })
        var arr = [12000,3000,14000,5000,17000,10000,20000];//从小到大排序
        // 从小到大
        arr.sort(function(a,b){
            // if(a>b){
            //    return 1; // return a-b
            // }
            // if(a==b){
            //     return 0; // return a-b
            // }
            // if(a<b){
            //     return -1; // return a-b
            // }
            // 可以简化成
            return a-b
     })
        console.log(arr)     // logs ==> [3000, 5000, 10000, 12000, 14000, 17000, 20000]
        // 从大到小
         arr.sort(function(a,b){
        //     // if(a>b){
        //     //    return -1; //return b-a
        //     // }
        //     // if(a==b){
        //     //     return 0; //return b-a
        //     // }
        //     // if(a<b){
        //     //     return 1; //return b-a
        //     // }
        //     // 可以简化成
          return b-a;
       })
        console.log(arr)  //logs==>[20000, 17000, 14000, 12000, 10000, 5000, 3000]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值