ES5数组的高阶方法及ES6的函数与数组

ES5数组的高阶方法

  • forEach 遍历

遍历数组

var arr=["我","爱","我的","祖国"]
arr.forEach(function(item,index,self){
	console.log(item,index,self);
})
  • map() 映射

返回和原数据一一对应关系的新数组

var arr = [1, 3, 5] //变成 2 6 10
var arr2 = arr.map(
function(item,index,self) {
		console.log(item,index,self);
		return item * 2;
	})
 console.log(arr2);
  • filter() 过滤

返回一个新的数组
如果回调函数返回true当前元素保留,否则被过滤掉

// 过滤函数 
// 回调函数如果返回true 当前元素保留
// 如果返回false 当前元素过滤掉

var arr1=[8,-50,30,25,19,60,5,7]
// 目标:过滤 大于20的数
var arr2=arr1.filter(function(item){
	return item>20;
	})
console.log(`arr1:${arr1}`);
console.log(`arr2:${arr2}`);
  • reduce() 累计

a,b两个参数,a是上一次返回的结果

var arr=[2,3,4];
var ret=arr.reduce(function(a,b){
	return a+b;
	//第一次:a:2  b:3 返回 5
	//第二次:a:5  b:4 返回 5
	})
alert(ret);
  • every() 每个

返回true或者false
回调函数都返回true则整个都返回true

var arr=[2,4,6,7,100,20,50];
	//目标判断 是否数组中的每个元素都小于10
var ret=arr.every(function(item){
	return item<120;
	//如果所有都小于10 最终返回true,有一个大于10 返回false
 })
	alert(ret);
  • some() 有一个

返回true或者false
只要回调函数有一个为true 则整个都返回true

var arr=[2,4,6,7,100,20,50];
	目标判断 是否数组中国有大于20的数
var ret =arr.some(function(item){
	return item<10;
	})
alert(ret);
  • sort 排序
var arr=[1,17,20,25,2,9,80];
arr.sort(function(a,b){
	return a-b; //从小到大排序
	return b-a; //从大到小排序
	});
	alert(arr);
var arr=[{age:15},{age:1},{age:8}];
arr.sort(function(a,b){
	return a.age-b.age;//年龄从小到大排序
	return b.age-a.age;//年龄从大到小排序
	});
	console.log(arr);

函数

箭头函数

  • 参数 => 函数体
  • 函数体:如果只有一句,执行的结果就是返回值
  • 如果参数不是一个,要()包裹
  • 语句多条1.用{}包裹2.return 返回
  • 如果返回的是个对象 return({})
  • 箭头函数this执行的作用域的上一层
var obj={
	age:18,
	say:function(){
		console.log("今年我"+this.age)
	},
	grow:function(){
		setInterval(()=>{
			this.age ++;
				this.say();
			},3000)
		},	
	}
// 默认setInterval this指向window
// 箭头函数this的指向为上一层作用域中的this obj

默认参数

  • 当参数值为undefined时 使用默认值
 function add(a=5,b=10){}

不定参数

 function(...args){}
 args是一个由参数组成的数组
 add(1,2)  args=[1,2]
 add(2,4,6) args=[2,4,6]

拓展参数

 var arr=[1,2,3,4]
 function add(a,b,c){}
 add(...arr)
 //调用函数 把arr数组展开

数组

  • 填充
    fill(内容,start,end)
var arr=[1,3,5,7];
arr.fill("love",2,4); //love 填充5,7
console.log(arr);
  • copyWithIn(替换位置,拷贝开始,拷贝结束)
var arr=[0,1,2,3,4,5,6,7];
var arr1=arr.copyWithin(0,4,8); 
console.log(arr1);
  • 查找
    -返回一个布尔值 arr是否包含obj
    arr.includes(obj)
var arr=["我","好","中意","你",100];
alert(arr.includes("你"));//包含返回true 不包含返回false
  • 查找 按 条件查找 find 查找元素 findIndex 查找下标
var arr=[2,7,10,100,50,255];
//查找arr中是否有大于100 的数
var ret=arr.find(item=>item>100);
alert(ret);
var ret=arr.findIndex(item=>item>100));
//查找arr中大于300数的下标,找不到返回-1
alert(ret);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值