美文网首页
js 循环之间的区别

js 循环之间的区别

作者: _重案组之虎 | 来源:发表于2020-08-21 14:39 被阅读0次

    1、for

    for (var i = 0; i < 10; i++) {
        console.log(i)
    }
    

    可以使用break和continue

    break 跳出整个循环

    continue 跳出当前循环

    2、forEach

    [1,2,3,4].forEach((item,index,arr) => {
        console.log(item,index,arr)
    })
    

    遍历数组中的每一项,没有返回值,对原数组没有影响

    break 和 continue 都不可使用,会报错

    return不会生效

    3、for in

    可以使用break 和 continue

    1. 遍历对象

      得到数组的index值

      for (i in {id:1,name:"张三"}) {
          console.log(i)
      }
      
    2. 遍历数组

      得到对象的key值

      for (i in [1,2,3]) {
          console.log(i)
      }
      

    4、for of

    可以使用break 和 continue

    可以用来遍历可迭代对象Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)

    得到value值

    for (i of [1,2,3]) {
        console.log(i)
    }
    

    不可以遍历普通对象

    for (i of {id:1}) {
        console.log(i)
    }
    //抛出错误
    //TypeError: {(intermediate value)} is not iterable
    

    5、map

    var arr = [1,2,3,4,5,6];
    var mapArr = arr.map((item,index) => {
        return item/2
    })
    console.log(mapArr) //[0.5, 1, 1.5, 2, 2.5, 3]
    console.log(arr) //[1, 2, 3, 4, 5, 6]
    

    map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值

    map方法不会改变原始数组

    6、find

    var arr = [1,2,3,4,5,6,4,2,4];
    var findArr = arr.find((item,index) => {
        return item == 4
    })
    console.log(findArr) //4
    console.log(arr) //[1, 2, 3, 4, 5, 6, 4, 2, 4]
    

    不会改变原数组,找到第一个符合条件的数据

    查询数组中符合条件的第一个元素,如果没有符合条件的元素则返回undefined

    7、filter

    var arr = [1,2,3,4,5,6,4,2,4];
    var filterArr = arr.filter((item,index) => {
        return item == 4
    })
    console.log(filterArr)  //[4, 4, 4]
    console.log(arr)   //[1, 2, 3, 4, 5, 6, 4, 2, 4]
    

    不会改变原数组 ,会找到所有符合条件的数据

    过滤数组元素,返回过滤后的数组,如果没有符合条件的元素则返回空数组

    注意区分filter和find的区别

    8、every

    every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

    every() 方法使用指定函数检测数组中的所有元素:
    
    如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
    
    如果所有元素都满足条件,则返回 true。
    

    注意: every() 不会对空数组进行检测。

    注意: every() 不会改变原始数组。

    let a = [3, 4, 5, 6].every((item) => {
        return item > 2
    })
    console.log(a);//true
    

    相关文章

      网友评论

          本文标题:js 循环之间的区别

          本文链接:https://www.haomeiwen.com/subject/dsvujktx.html