zoukankan      html  css  js  c++  java
  • 遍历数组的几种方式

    1.for 循环

    for(j = 0; j < arr.length; j++) {
       
    } 

    2.forEach   最简单、最常用的数组遍历方法。它提供一个回调函数,可用于处理数组的每一个元素,默认没有返回值。 遍历开始以后无法停止。

    arr.forEach(function(e){  
       
    });

    3.map 会映射返回一个新数组,不会改变原数组的值

    var array = arr.map((item,index)=>{
        
    })

    4.filter 过滤数组,返回一个新的数组,原数组的元素执行了回调函数之后返回值若为true,则会将这个元素放入返回的数组中。

    var newarr = arr.filter((item,index)=>{
       return 条件 
    })
    // 例子:筛选出数组arr中所有负数
    var arr = [1,-2,3,4,-5]
    var minus = arr.filter(function(item,index,array){
        return item < 0;
    });
    console.log(minus);   // [-2, -5]

    5.some 遍历整个数组,返回值true就停止循环(返回false继续循环)返回布尔值 多用于判断数组中是否存在

    arr.every(function(value, index, array){
        // arr中有几项,该匿名回调函数就需要执行几次
        // value —— 数组中的当前项
        // index —— 当前项的索引
        // array —— 原始数组
        return xxx
    })
    
    //例子:判断arr中的元素是否都为正数
    var arr = [1,-2,3,4,-5]
    var isEvery = arr.every(function(item, index, array){
        return item > 0
    })
    console.log(isEvery) // false

    6.every 与some相反,返回false就停止循环(返回true就继续循环) 返回的是一个布尔值 多用于判断数组中是否存在之类

    arr.some(function(value, index, array){
        // arr中有几项,该匿名回调函数就需要执行几次
        // value —— 数组中的当前项
        // index —— 当前项的索引
        // array —— 原始数组
        return xxx
    })
    
    //例子:判断数组arr中是否存在负数
    var arr = [1,-2,3,4,-5]
    var isSome = arr.some(function(item,index,array){
        return item < 0;
    });
    console.log(isSome);   // true

    7.reduce 实现数据的累加

    arr.reduce(function(prev, cur, index, array){
        // array——原数组
        // prev——上一次调用回调时的返回值,或者初始值init
        // cur——当前正在处理的数组元素
        // index——当前正在处理的数组元素的索引
        // init——初始值
    }, init)
    
    //求和
    var sum = arr.reduce(function (prev, cur) {
        return prev + cur;
    },0);
    
    //取最大值
    var max = arr.reduce(function (prev, cur) {
        return Math.max(prev,cur);
    });

    8.for..of ES6中,新增了for-of遍历方法。它被设计用来遍历各种类数组集合,例如DOM NodeList对象、Map和Set对象,甚至字符串也行。

    // for-of遍历数组,不带索引,i即为数组元素
    for ( let  i of arrTmp){
         console.log(i)
    }
    //输出 "value1" "value2" "value3"
     
    // for-of遍历Map对象
    let  iterable =  new  Map([[ "a" , 1], [ "b" , 2], [ "c" , 3]]);
    for  ( let  [key, value] of iterable) {
       console.log(value);
    }
    //输出 1 2 3
     
    // for-of遍历字符串
    let  iterable =  "china中国" ;
    for  ( let  value of iterable) {
       console.log(value);
    }
    //输出 "c" "h" "i" "n" "a" "中" "国"

    顺带记录以下for...of...与for..in...的区别

    for...in...只能获得对象的键名,不能获得键值

    for...of...允许遍历获得键值

    var arr = ['red', 'green', 'blue']
     
    for(let item in arr) {
      console.log('for in item', item)
    }
    /*
      for in item 0
      for in item 1
      for in item 2
    */
     
    for(let item of arr) {
      console.log('for of item', item)
    }
    /*
      for of item red
      for of item green
      for of item blue
    */
  • 相关阅读:
    如何使用Remoting实现双工(转自Artech)
    解决自定义代码启动Approver Sharepoint 2010 Workflow,出现Failed on Start
    设计模式学习(目录)
    C#面向对象分析
    使用Sharepoint 2010 Client Object Model 通过SSL验证
    .NET 4.0 Location : 查看传感器状态变化
    OLAP和OLTP的 概念和区别
    组织结构及权限模型设计
    维度关系
    PHP正则替换中文让中文无处可躲
  • 原文地址:https://www.cnblogs.com/benbonben/p/14798410.html
Copyright © 2011-2022 走看看