数组的各种遍历方法和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 );
} );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值