常见遍历数组的方法(内置)

遍历:就是将数组中的元素全部取出来。

一,利用for()循环

var arr=[1,2,3,4,5,6]
		for(var i=0;i<arr.length;i++){        //arr.length是数组的长度
			console.log("arr="+arr[i]);
		}

iOS开发获取数组中的前十个元素_遍历数组


缺点:这种写法比较麻烦

二,forEach()

forEach()方法需要一个函数作为参数

像我们写的这种函数,由我们创建,但不由我们调用,我们称为回调函数

我们以实参的形式传递进来,可以来定义形参,来读取内容

该方法没有返回值, 可以不用知道数组长度

浏览器会在回调函数中传递三个参数,他们的作用分别为:
第一个参数:就是当前正在遍历的对象
第二个参数:就是当前正在遍历的对象的索引
第三个参数:就是当前正在遍历的数组

注意的是该方法它只支持IE8以上的浏览器,有一定的局限性

var arr=[1,2,3,4,5,6];
		arr.forEach(function (value,index,array){
			console.log("第一个参数="+value);
//			console.log("第二个参数="+index);
//			console.log("第三个参数="+array);
		})

分别对他们显示,这样结构比较清晰:

iOS开发获取数组中的前十个元素_iOS开发获取数组中的前十个元素_02


iOS开发获取数组中的前十个元素_数组_03

iOS开发获取数组中的前十个元素_前端_04


缺点:这种写法的问题在于,无法中途跳出forEach循环,break命令或return命令都不能奏效。

三,map()函数

map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变。

每个元素都是回调函数返回的值。

var arr=[1,2,3,4,5,6];
		var result=arr.map(function (value){
			value=value+1;            //我们可以稍微改变返回值,来确定会不会组成新的数组
			console.log("第一个参数="+value);
			return value;
		})
		console.log (arr,result);

iOS开发获取数组中的前十个元素_数组_05

四,filter()函数

返回一个新数组,数组的元素是原数组中通过测试的元素(就是回调函数返回 true 的话,对应的元素会进入新数组), 原数组不变。

var arr=[1,"男",true,66];
		var result=arr.filter(function (value){	
			return typeof value === 'number';   //我们判断数据类型是否为Number,是则将其值返回
		})
		console.log (arr,result);

iOS开发获取数组中的前十个元素_遍历数组_06

五,some()函数

遍历数组中是否有符合条件的元素,返回值为Boolean值
这个它只要找到一个符合条件的,就返回 true。

var arr=[1,"男",true,66];
		var result=arr.some(function (value){	
			return typeof value === 'number';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,null,true,66];
		var result2=arr2.some(function (value){	
			return typeof value === 'String';
		})
		console.log (arr2);
		console.log (result2);

iOS开发获取数组中的前十个元素_iOS开发获取数组中的前十个元素_07

六,every()函数

测试数组的各个元素是否通过了回调函数的测试

若都通过,返回 true,否则返回 false

简单的说就是如果回调函数每次返回的值都是 true 的话,则 every() 返回 true,否则为 false。

var arr=[1,2,8,66];
		var result=arr.every(function (value){
			return typeof value === 'number';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,"男",true,66];
		var result2=arr2.every(function (value){	
			return typeof value === 'number';
		})
		console.log (arr2);
		console.log (result2);

iOS开发获取数组中的前十个元素_回调函数_08

七,find()函数

返回第一个通过测试的元素

如果没有通过测试的元素,则会返回undefined

var arr=[1,2,8,66,"女","男"];
		var result=arr.find(function (value){	
			return typeof value === 'string';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,"男",true,66,false];
		var result2=arr2.find(function (value){
			return typeof value === 'boolean';
		})
		console.log (arr2);
		console.log (result2);

iOS开发获取数组中的前十个元素_回调函数_09

八,findIndex()函数

这个函数与上面的find()作用一样,就是它返回的值为该通过第一个元素的索引。

var arr=[1,2,8,66,"女","男"];
		var result=arr.findIndex(function (value){
			return typeof value === 'string';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,"男",true,66,false];
		var result2=arr2.findIndex(function (value){
			return typeof value === 'boolean';
		})
		console.log (arr2);
		console.log (result2);

iOS开发获取数组中的前十个元素_iOS开发获取数组中的前十个元素_10

总结:我们可以根据自己的需求来使用其中的方法,除去for循环,这七种回调函数,它们的参数都有三个,就是我们在forEach()中详细介绍的,如果自己有需求可以自己向里面在添加参数,来返回所需内容。我们用更简洁的语法(比如内置函数)遍历数组,从而消除循环结构。