forEach()
函数
单纯的、义无反顾的对数组进行遍历
示例代码
#1 基础使用
let arr = [1,2,3];
arr.forEach(function(currentValue){
console.log(currentValue);// 每次输出 1,2,3
})
#2 遍历的时候获取角标
let arr = [1,2,3];
arr.forEach(function(currentValue,index){
console.log(currentValue);// 每次输出 1,2,3
console.log(index);// 每次输出,0,1,2
})
#3 代入被遍历的数组本身
let arr = [1,2,3];
arr.forEach(function(currentValue,index,originArr){
console.log(currentValue);// 每次输出 1,2,3
console.log(index);// 每次输出,0,1,2
console.log(originArr);// 每次输出 [1,2,3]
})
#4 绑定this
let arr = [1,2,3];
let obj = {age:18}
arr.forEach(function(currentValue,index,originArr){
console.log(currentValue);// 每次输出 1,2,3
originArr[index] = this.age+currentValue
},age)
关注点
- forEach() 被调用时,不会改变原数组(即调用它的数组)
- 遍历中无法中断,直到数组被遍历完毕
- arr.forEach(callback);callback 无返回值/永远返回undefined
- arr.forEach(); 这个函数本身也无返回值/返回值是undefined
- 灵活使用 第二参数,进行this的绑定,这个往往在封装功能函数的时候起到很大作用
every()
函数
这个函数的目的,是测试数组内的每个元素是否都能通过指定的函数的测试,如果都通过了那就返回true,否则就返回false
示例代码
# 1 检查数组里面的每个元素是否符合条件
let arr = [1,2,3];
// 检查arr中的每个元素是不是 都大于2
let res = arr.every(function(currentValue){
return currentValue>2
})
console.log(res); // 输出 false,而且只遍历了一次
# 2 无条件遍历数组
let arr = [1,2,3];
arr.every(function(currentValue,index){
console.log(currentValue);// 依次输出1,2,3
return true;// 这里一定要写,并且还要返回true
})
# 3 指定回调函数中的this
let arr = [1,2,3];
let obj = { name:'Tom' }
arr.every(function(currentValue,index){
console.log(this); // this--> obj
console.log(this.name); // Tom
return true;
},obj)
关注点
- arr.every(callback);中callback 如果没有指定返回值,默认返回 undefined,也就是 false,所以callback只会被执行依次
- arr.every() 函数本身返回 Boolean值 true/false
some()
函数
和 every()函数类似,只不过这个是测试数组中是否有某个元素通过测试条件,而不是全部
示例代码
# 1 检查数组里面的元素是否有符合条件
// 比如,判断某个班的学生是否有人能考上 981;就是这个人的摸底成绩大于600分
let arr = [{
name:'章三‘,
grade:500
},{
name:'小明',
grade:620
},{
name:'小许',
grade:320
}]
let res = arr.some(function(stu){
return stu.grade>600;
})
console.log(res);// true,说明这个班是有希望的,但是不是每个人都有希望
关注点
- 注意callback的返回,返回true的时候循环停止,这个和
every
相反
every()
对比some()
函数
这2个函数其实是互补函数,
区别是:一个是&&
运算一个是||
运算
every --> arr[1]&&arr[2]&&arr[..]
some--> arr[1]||arr(2)||arr[..]
共同点:2个都是对数组进行检查,返回值都是,boolean,表示数组是否通过测试
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。