ES5中新添加的有关数组的API

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>ES5中新添加的API</title>
	<script type="text/javascript">
    // 1.判断类API
    // (1.)every():用来判断arr数组中的每一个元素是否满足要求
    // 只有每一个元素都满足要求才会返回true,否则返回false,和&&运算相似
    /* 语法:var bool =  arr.every(function(val,i,arr){
				val自动获取当前元素值
				i  自动获取当前元素的位置
				arr 自动获得当前数组

				return 条件;
			})
    */
    // 例子:判断数组里的数是否都是偶数
    var  arr1 = [1,2,3,4,5];
	var  arr2 = [10,8,6,4,2];
	var  arr3 = [1,2,3,2,1];
    function allEven(arr){
    	var bool = arr.every(function(val){
           return (val & 1 )===0;
    	}) 
    	return bool;
    }
    console.log(
    	allEven(arr1),//false
		allEven(arr2),//true
		allEven(arr3)//false
    	)
   // (2.)some()用来判断数组中是否含有符合要求的元素,只要有一个符合就返回true,都不满足才返回false,和||运算相似
   /*语法::var bool =  arr.some(function(val,i,arr){
				val自动获取当前元素值
				i  自动获取当前元素的位置
				arr 自动获得当前数组
				return 条件;
			})*/
	//例子: 判断给定的数组是否是升序
	function isASC(arr){
     	return arr.every(function(val,i,arr){
					return i < arr.length-1? val<=arr[i+1] : true;
		})
	}
	console.log(
			isASC(arr1),//true
			isASC(arr2),//false
			isASC(arr3)//false
				)

//2.遍历类数组API:
//(1.)arr.forEach():对原数组中每个元素执行相同的操作   直接操作的原数组
// 语法:arr.forEach(function(val,i,arr){执行的相同的操作 arr[i] = newValue})
// 例子:将数组中的数变成偶数:
    arr1.forEach(function(val,i,arr){
			arr[i] *= 2;
	})
		arr1.forEach((val,i,arr) => arr[i]*=2);//ES6  的箭头函数
		console.log(String(arr1));
//(2.) arr.map():取出原数组中的值,加工后,放入新数组(说明有返回值)
//例子:// 将数组中的每个元素除以2
	var newArr = arr1.map(function(val){
			return val/2;
	})
	console.log(String(arr1));//修改前的数组
	console.log(String(newArr));//修改后的数组

//过滤和汇总类API
//(1.) arr.filter()选取原数组中符合条件的元素组成新数组
  /*语法:var subArr  = arr.filter(function(val,i,arr){
				return 条件;//所有返回true的元素,收集到新数组中
			})
		(有返回值)*/
//例子:
// 找出数组中的偶数元素
	var evens = arr3.filter(function(val){return val%2 ==0 })
	console.log(String(arr3));//修改前的数组
	console.log(String(evens));//修改后的数组

// (2.)arr.reduce()对数组中每个元素的值最终统计一个新的结果
/*语法:var result = arr.reduce(function(prev,val,i,arr){
		 			prev获得截止目前的统计结果
		 			return prev + val;
		 			start:累积数量的起始值
		 		}[,start]);
 */
//例子:
     var arr4 = [9,8,7,6,5,4,3];
	// 将arr4中的所有数据累加
	var sum = arr4.reduce(function(prev,val){
		return prev+val;
	}/*,start*/)//start在可写可不写,不写的情况下,默认从0这个起始值开始累加数组

    console.log(sum);
	var arr5 = [10,20,30,40];
	// arr4和arr5的元素都累加
    sum = arr5.reduce(function(prev,val){
		 return prev + val;
	},sum);
    console.log(sum);//142
	</script>
</head>
<body>
	
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值