1. 程式人生 > >陣列的各種遍歷方法和jQuery中的each方法

陣列的各種遍歷方法和jQuery中的each方法

1.forEach,some,map,filter遍歷陣列

/*
* 陣列的forEach方法:
* 1、返回給回撥的引數先是值,然後是下標
* 2、回撥函式執行時內部的this指向window
* */
/*var arry = [1,2,3,4,5];
arry.forEach(function( val, index ) {
console.log( val, index, this );
});*/
(function (){
var sum = 0;
function getSum (item, index, array){
sum += item;
}
console.time("getSum"
); for (var i = 0; i < 1000000; i++){ var sum = 0; arr.forEach(getSum); //arr.some(getSum) //arr.map(getSum) //arr.filter(getSum) } console.timeEnd("getSum"); // getSum: ***** console.log("使用forEach迴圈:sum=" + sum); // 使用forEach迴圈:sum=45 })()

2.for迴圈和while迴圈

var arr = [0,1,2,3,4,5,6,7,8,9];
(function() {
var sum = 0
; function getSum(array){ for (var i = 0; i < array.length; i++){ sum += parseInt(array[i]); } return sum; } console.time("getSum"); for (var i = 0; i < 1000000; i++){ sum = 0; getSum(arr); } console.timeEnd("getSum"); // 7877.155ms console.log("使用for迴圈:sum = " + sum); // 45 })(); // 求和:while迴圈遍歷陣列arr (function
() {
var sum = 0; function getSum(array) { var i = array.length; while (i--) { sum += parseInt(array[i]); } return sum; } console.time("getSum"); for (var i = 0; i < 1000000; i++) { var sum = 0; getSum(arr); } console.timeEnd("getSum"); // getSum: 7690.056ms console.log("使用while迴圈:sum=" + sum); // 使用while迴圈:sum=45 })();

補充:把陣列轉換成字串

var arryAll = [];  
arryAll.push(1);  
arryAll.push(2);  
arryAll.push(3);  
arryAll.push(4);  
var v="";
arryAll.forEach(function(e){  
    v+=e+",";
})  
v=v.substr(0,v.length-1)
console.log(v)//1,2,3,4*/

3.jQuery中的each方法
/*
* jQ例項的each方法
* 1、返回給回撥的引數先是下標,然後是值
* 2、回撥函式執行時內部的this就指向遍歷到的每一個值(就是回撥中接收到的val)
* 3、如果想中斷遍歷,在回撥中返回false即可
* */

$('li').each( function( index, val ) {
console.log( index, val, this );
if( index === 1 ) {
return false;
}
});

/*
* jQ還提供了一個靜態版本的each方法,供框架使用者使用
* 1、返回給回撥的引數先是下標,然後是值
* 2、回撥函式執行時內部的this就指向遍歷到的每一個值(就是回撥中接收到的val)
* 3、如果想中斷遍歷,在回撥中返回false即可
* */

var obj = { name: 'test', val: {} };
var arr2 = [ 'abc', {}, 'qwer' ];
$.each( obj, function( key, val ) {
console.log( key, val, this );
} );
$.each( arr2, function( index, val ) {
console.log( index, val, this );
} );