es5常用的数组循环方法

ES5迭代方法

ES5主要新增了5个迭代方法

forEach()

var arr = [11, 22, 33, 44];

//形参可以传三个(有需要则传,不需要则不传)
//v: 数组中每一项
//i: 数组中每一项的下标
//arr1: 数组本身
arr.forEach(function (v, i, arr1) {
	// 遍历数组每一项,输出4个结果
    console.log(v); //11, 22, 33, 44
    console.log(i); //0, 1, 2, 3
    console.log(arr1);//[11, 22, 33, 44] 输出四遍数组本身
})

//通过箭头函数输出数组中每个元素的2倍值
arr.forEach(v => console.log(v * 2));//22 44 66 88

小结:
1.代码简洁,配合箭头函数食用更佳
2.不会产生额外的全局变量(例如:for循环遍历会产生额外变量i)

map()

//map方法会返回一个新数组, 新数组中存放的是每个元素被回调函数处理结果 

var arr = [11, 22, 33, 44];

//形参可以传三个(有需要则传,不需要则不传)
//v: 数组中每一项
//i: 数组中每一项的下标
//arr1: 数组本身
arr.map(function (v, i, arr1) {
    // 遍历数组每一项,输出4个结果
    console.log(v); //11, 22, 33, 44
    console.log(i); //0, 1, 2, 3
    console.log(arr1);//[11, 22, 33, 44] 输出四遍数组本身
})

//通过map()将数组中每个元素的2倍值,用变量接收返回的新数组
var arr2 = arr.map(function (v) {
    return v * 2;
});
console.log(arr2);//[22, 44, 66, 88]

//箭头函数写法
var arr3 = arr.map(v => v * 2);
console.log(arr2);//[22, 44, 66, 88]

小结:
1.和forEach()用法大致相同,唯一区别在于map()有返回值,可以用return接收新数组
2.map() 适用于收集处理结果情况

filter()

//filter 会返回一个新数组, 数组中存放是满足条件元素

var arr = [11, 22, 33, 44];

//形参可以传三个(有需要则传,不需要则不传)
//v: 数组中每一项
//i: 数组中每一项的下标
//arr1: 数组本身
arr.filter(function (v, i, arr1) {
    // 遍历数组每一项,输出4个结果
    console.log(v); //11, 22, 33, 44
    console.log(i); //0, 1, 2, 3
    console.log(arr1);//[11, 22, 33, 44] 输出四遍数组本身
})

//通过filter()将数组中>11的值过滤出来,用变量接收返回的新数组
var arr2 = arr.filter(function (v) {
    return v > 11;
})
console.log(arr2);//[22, 33, 44]

//箭头函数写法
var arr3 = arr.filter(v => v > 11)
console.log(arr3);//[22, 33, 44]

小结:
filter()会将满足条件的值过滤出来,放入新数组

some()和every()

// some();  判断数组中是否有元素满足条件
// every(); 判断是否数组中每一个元素都满足条件

// some(function (v, i, arr1) {});
// every(function (v, i, arr1) {});  

var arr = [11, 22, 33, 44];

// 判断数组中是否有>22的值
var res1 = arr.some(function (v) {
    return v > 22;
});
console.log(res1);//true

//箭头函数写法
var res2 = arr.some(v => v > 22);
console.log(res2);//true


// 判断数组中每一项值是否都>22
var res3 = arr.every(function (v) {
    return v > 22;
});
console.log(res3);//false

//箭头函数写法
var res4 = arr.every(v => v > 22);
console.log(res4);//false

小结:
some() 判断的是是否有满足的项,返回值为布尔类型
every() 判断的是,每一项是否都满足条件,返回值为布尔类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值