JavaScript 中的几种迭代方法

迭代

定义
1、迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。
2、循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。
3、遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
4、递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。

迭代方法
1、every
用来查询数组中的 每一个是否 满足某一条件

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var number = num.every(function(item,index){
    
    
      return (item > 5);   // 判断传入的值是否全部都大于5
})
console.log(number);   // false 只要有一个不满足就为 false

2、some
查询数组中每项满足 某些条件

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var number = num.every(function(item,index){
    
    
      return (item > 5);   // 判断传入的值哪些项大于5
})
console.log(number);   // false 只要有一个满足就为true

3、filter
筛选符合条件的项,组成新数组

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var number = num.filter(function(item,index){
    
    
      return (item > 5);   // 判断传入的值哪些项大于5
})
console.log(number);   // [6, 7, 8, 9]

4、map
通过计算原数组中的项,来组成新的数组

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var number = num.map(function(item,index){
    
    
      return item - 1;   // 判断传入的值哪些项大于5
})
console.log(number);   // [0, 1, 2, 3, 4, 5, 6, 7, 8]

5、forEach
传入数组的每一项

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var number = num.forEach(function(item,index){
    
    
      console.log(item);   // [1, 2, 3, 4, 5, 6, 7, 8, 9]
})

6、reduce
数组的前项和后项进行累计值计算

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var number = num.reduce(function(prev,cur,index){
    
    
      return prev + cur;
})
console.log(number);   // 1+2+3...+9 = 45 本质上就是数组中的项 累计运算的过程

注意

forEach 这个迭代方法在本质上和 for 循环没有什么区别,但是在使用该方法的时候会传入三个参数,在输出时候传入第一项,也就是输出数组中的每一项,如果传入第二项,那么会循环迭代数组的 index 的下标值,如果传入的是第三项,那么是循环迭代整个 num 数组。

猜你喜欢

转载自blog.csdn.net/weixin_43176019/article/details/109101960