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)

关注点

  1. forEach() 被调用时,不会改变原数组(即调用它的数组)
  2. 遍历中无法中断,直到数组被遍历完毕
  3. arr.forEach(callback);callback 无返回值/永远返回undefined
  4. arr.forEach(); 这个函数本身也无返回值/返回值是undefined
  5. 灵活使用 第二参数,进行this的绑定,这个往往在封装功能函数的时候起到很大作用

every()函数

这个函数的目的,是测试数组内的每个元素是否都能通过指定的函数的测试,如果都通过了那就返回true,否则就返回false

示例代码

# 1 检查数组里面的每个元素是否符合条件

let arr = [1,2,3];// 检查arr中的每个元素是不是 都大于2let 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)

关注点

  1. arr.every(callback);中callback 如果没有指定返回值,默认返回 undefined,也就是 false,所以callback只会被执行依次
  2. arr.every() 函数本身返回 Boolean值 true/false