陣列的各種遍歷方法和jQuery中的each方法
阿新 • • 發佈:2019-02-10
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 );
} );