美文网首页
js数组之forEach,every,some,filter,m

js数组之forEach,every,some,filter,m

作者: 信仰与初衷 | 来源:发表于2018-06-15 09:44 被阅读0次

    js数组有很多操作方法,其中forEach,every,some,filter,map,reduce是常容易混淆用法的,下面我来解释其中的区别

    var list = [{
        "id": 1,
        "age": 19
    },
    {
        "id": 2,
        "age": 18
    }]
    
    var result = list.forEach((val,index) => {
        val.id = val.id + 1
        //return  
    })
    console.error(result, list)
    
    var boolData = list.every(val => {
        return val.age > 18
    })
    
    console.error(boolData, list);
    
    var boolData2 = list.some(val => {
        return val.age > 18
    })
    
    console.error(boolData2, list);
    
    var data = list.filter(val => {
        return val.age > 18
    })
    
    console.error(data, list);
    
    var mapData = list.map(val => {
        return (val.id) * 2
    })
    
    console.error(mapData, list);
    
    var reduceData = list.reduce((prev, next) => {
           return prev.id + next.id * next.id 
    })
    
    console.error(reduceData);
    

    输出结果如下:

    undefined, [ { id: 2, age: 19 }, { id: 3, age: 18 } ]                      #forEach
    
    false, [ { id: 2, age: 19 }, { id: 3, age: 18 } ]                          #every
    
    true, [ { id: 2, age: 19 }, { id: 3, age: 18 } ]                           #some
    
    [ { id: 2, age: 19 } ], [ { id: 2, age: 19 }, { id: 3, age: 18 } ]         #filter
    
    [ 4, 6 ], [ { id: 2, age: 19 }, { id: 3, age: 18 } ]                       #map
    
    11                                                                                         #reduce
    

    可以看出:

    • forEach 是没有返回值的,你可以直接修改回调的val值来改变原数组,也可以利用val来生成新数组 (没有返回值)
    • every 是用来做判断,判断数组中的所有元素是否都符合某一个条件吗,符合则返回值是true,具体条件是有回调里面的return的值来决定(返回布尔值)
    • some 是用来做判断,判断数组中的是否存在某一个元素符合某一个条件吗,符合则返回值是true,具体条件是有回调里面的return的值来决定(返回布尔值)
    • filter 是用来过滤,可以过滤出来数组中的某些符合条件的元素集合,具体条件是有回调里面的return的值来决定 (返回新数组)
    • map 是用来根据原数组生成新数组的,元素是回调里面返回的值 (返回新数组)

    相关文章

      网友评论

          本文标题:js数组之forEach,every,some,filter,m

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