forEach使用的函數調用,因此佔內存比較大,不如定長for循環和迭代for循環javascript
一、經過forEach將數組中的元素逐個表示出來(遍歷方法,讀取操做)。html
二、經過map將原數組中的元素進行算數運算,並把值返還給新建的數組中(遍歷方法,修改操做)。java
三、filter提取原數組中符合條件的元素並放在新建的數組中(數據的帥選方法)。數組
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ES5新增數組方法1</title> <script type="text/javascript"> var arr = ["mike","john","andy","bob","jerry","tom"]; arr.forEach(function(n,i){ console.log("第"+(i+1)+"個數據是:"+n); }); // for(var i=0,len=arr.length;i<len;i++){} //匿名函數絕大多數場合用於回調 // 匿名函數也能調用,但僅限一次 // (function () { // console.log('匿名函數'); // })(); var num=[3,4]; var ret=num.map(function(n){ // console.log(arguments); return n*n;//返回值出如今結果數組中 }); console.log(ret); console.log(num); console.log('====='); num=[3,5,78,2,13]; ret=num.filter(function(n){ return n%2==0;//返回值爲true的數據出如今結果數組中 }); console.log(ret); </script> </head> <body> </body> </html>
四、經過some和every對數組進行條件方法的斷定,every:數組中的每一個元素都知足條件才爲true否組爲false。some:只要數組中的有元素知足條件就爲true函數
五、indexOf(8)返回數組中第一個8所在的位置,lastIndexOf(8)返回數組中最後一個8所在的位置spa
經過do{}while()+indexOf來返回數組中全部8所在的位置。code
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ES5新增數組方法2</title> <script type="text/javascript"> var arr=[12,8,5,7,8,3,8,22]; var ret=arr.every(function(n){ return n>3; }); console.log(ret); console.log('======'); var find=arr.indexOf(8); console.log(find); find=arr.lastIndexOf(8); console.log(find); console.log('======'); find=-1; do{ find=arr.indexOf(8,find+1); if(find==-1){ break; } console.log("find="+find); }while(true); </script> </head> <body> </body> </html>
六、 var sum=arr.reduce(function(pre,curr){
return pre+curr;
});htm
經過reduce對數組進行元素相加blog
七、二維數組:數組中存放的數據仍是數組ip
二維數組扁平化(轉爲一維數組,在二維數組每一維的數量都相同時有意義)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ES5新增數組方法3</title> <script type="text/javascript"> var arr=[1,8,5,4]; // arr.reduce(function(pre,curr,index){ // console.log(arguments); // return curr; // }); var sum=arr.reduce(function(pre,curr){ return pre+curr; }); //1+8=9 9+5=14 14+4=18 console.log(sum); console.log('====='); //二維數組:數組中存放的數據仍是數組 var multi=[]; multi[0]=[2,4,8];//2 4 8 4 7 2 multi[1]=[4,7,2]; multi[2]=[14,17,12]; multi[3]=[24,27,22]; console.log(multi); for(var i=0,len=multi.length;i<len;i++){ for(var j=0,len2=multi[i].length;j<len2;j++){ console.log(multi[i][j]); } } console.log('====='); //二維數組扁平化(轉爲一維數組,在二維數組每一維的數量都相同時有意義) var newarr=multi.reduce(function(pre,curr){ return pre.concat(curr); }); console.log(newarr); //獲取2,2位置的數據: var i=2; var j=2; var index=i*3+j;//3是每一維的長度,視具體數組而變 console.log(newarr[index]); </script> </head> <body> </body> </html>