java遍历数组的各种⽅法_遍历数组的常⽤⽅法
1.最传统⽅法 for循环
1 var arr = ["first","second","third","fourth",3,5,8];
2 for(var i = 0; i < arr.length;i++){
3 console.log(arr[i]);
4 }
5 //输出:
6 first
7 second
8 third
9 fourth10 3
11 5
12 8
for… in
1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2 for(var i inarr){
3 console.log(arr[i] +'/' +i);
4 }
5 //输出结果为:
6 first/0
7 second/1
8 third/2
9 fourth/3filter过滤对象数组
10 3/4
11 5/5
12 8/6
for…of
1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2 for(varitem of arr){
3 console.log(item);
4 }
5 //输出结果:
6 first
7 second
8 third
9 fourth10 3
11 5
12 8
虽然for… in 、 for… of 都能够变历数组,但是两者还是有很⼤区别的,先说结论:
两者的主要区别在于他们的迭代⽅式
推荐在循环对象属性的时候,使⽤for in,在遍历数组的时候推荐使⽤for of
for…in 循环出来的是key, for…of循环出来的是value
for…in 是ES5 标准,for …of 是ES6标准,兼容性可能存在些问题,请注意使⽤
for…of 不能遍历普通的对象,需要和Object.keys() 搭配使⽤
2.foreach⽅法:被传递给foreach的函数会在数组的每个元素上执⾏⼀次,元素作为参数传递给该函数
1 var arr = ["first","second","third","fourth",3,5,8];
2 //element 表⽰arr的单元项,index 表⽰arr单元项对应的索引值
3 arr.forEach(function(element,index){
4 console.log(element + '/' +index);5
6 })
7 //输出结果:
8 first/0
9 second/1
10 third/2
11 fourth/3
12 3/4
13 5/5
14 8/6
注意:未赋值的值是不会在foreach循环迭代的,但是⼿动赋值为undefined的元素是会被列出的
1 var arr1 = ["first","second", ,"fourth",3,5,8];
2 arr1.forEach(function(element,index){
3 console.log(element + '/' +index);4
5 })
6 //输出结果
7 first/0
8 second/1
9 fourth/3
10 3/4
11 5/5
12 8/6
3.map 遍历数组,并通过callback对数组元素进⾏操作,并将所有操作结果放⼊数组中并返回该数组
1 var arr = ["first","second",'third' ,"fourth"];
2 var arr2 = arr.map(function(item){
UpperCase();
4 })5
console.log(arr2);6 //输出:
7 [FIRST,SECOND,THIRD, FOURTH]
4.filter( )返回⼀个包含所有在回调函数上返回为true的元素新数组,回调函数在此担任的是过滤器的⾓⾊,当元素符和条件,过滤器就返回true,⽽filter则会返回所有符合过滤条件的元素
1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2 var arr
3 = arr.filter(function(item){3 if(typeof item == 'number'){
4 returnitem;
5 }
6 })
7 console.log(arr3);
8 //输出结果:
9 [3,5,8]
5. every() 当数组中的每⼀个元素在callback上被返回true时就返回true(注意:要求每⼀个单元项都返回true时才为true)
every()与filter()的区别是:后者会返回所有符合过滤条件的元素;前者会判断是不是数组中的所有元素都符合条件,并且返回的是布尔值
1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2 var bol = arr.every(function(element){
3 if(typeof element == 'string'){
4 returnelement;
5 }
6 })
7 console.log(bol); //false
6.some()只要数组中有⼀项在callback上就返回true
every()与some()的区别是:前者要求所有元素都符合条件才返回true,后者要求只要有符合条件的就返回true
1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2 var bol = arr.some(function(element){
3 if(typeof element == 'string'){
4 returnelement;
5 }
6 })
7 console.log(bol); //true
7.findindex() ES6数组新API,到符合条件的索引并返回
1 var ages = [3, 10, 18, 20];2
3 functioncheckAdult(age) {
4 return age >= 18;
5 }
function(currentValue, index,arr)
参数currentValue:必需。当前元素
index:可选。当前元素的索引
arr:可选.当前元素所属的数组对象
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论