复习:javascript中得数组遍历方法

var stus = ["Tom","Jaki","Lucy","Ami"];
//进行数组的逐个遍历,需要传入一个函数,此函数有三个参数,分别为遍历到的元素,其下标和原数组.
//第2个参数,这个参数将与遍历函数中使用的this关联
stus.forEach(function(element,index,array){
	console.log(element,index,array);
},stus);
//对数组进行检查 传入一个函数,函数中的参数分别为遍历到的元素,
//其下标和原数组 此函数需要返回一个布尔值 如果返回ture 则继续遍历,
//如果返回false则停止。
//当所有元素都遍历完成并且都返回true时,结果才为true,否则都为false
//every方法还可以传入第2个参数,这个参数将与遍历函数中使用的this关联
var notHaveAmi = stus.every(function(element,index,array){
	console.log(this);
	console.log(element,index,array);
	if (element == "Ami") {
		return false;
	}else{
		return true;
	}
},stus);
console.log(notHaveAmi);//false
//some遍历方法与every对应,只是其回调是全部返回false,结果才为false,否则为true
var haveAmi = stus.some(function(element,index,array){
	console.log(this);
	console.log(element,index,array);
	if (element == "Ami") {
		return true;
	}else{
		return false;
	}
},stus);
console.log(haveAmi);//true
//数组过滤器 当回调函数返回true时 代表此元素通过过滤 将其添加进新数组返回
var newArray = stus.filter(function(element,index,array){
	console.log(this);
	console.log(element,index,array);
	if (element == "Ami") {
		return true;
	}else{
		return false;
	}
},stus);
console.log(newArray);//[ 'Ami' ]
//map方法将数组中的每一个元素执行回调 然后将返回值重新组成数组返回
newArray = stus.map(function(element,index,array){
	return element+"!";
},stus);
console.log(newArray);//[ 'Tom!', 'Jaki!', 'Lucy!', 'Ami!' ]
//reduce方法是数组累加器 其会按照数组从左向右的顺序依次调用回调函数
//回调函数中有3个参数 第1个参数为上次执行累加回调的返回值 第2个参数为当前遍历的元素,第3个参数为其下标
//reduce方法的第2个参数可选,其为首次进行累加回调的初始值
//如果不提供初始值,reduce函数会从数组索引为1的位置开始,跳过第1个元素
var res = stus.reduce(function(acc,element,index){
	return acc+" "+element;
},"Hello");
console.log(res);//Hello Tom Jaki Lucy Ami
//与reduce方法类似 其从右向左开始遍历
res  = stus.reduceRight(function(acc,element,index){
	return acc+" "+element;
},"Hello");
console.log(res);//Hello Ami Lucy Jaki Tom

 

你可能感兴趣的:(JavaScript)