数组常用方法3

87 阅读3分钟


//参数
//item:数组的每一项的值
//index: 数组每一项对应的下标
//origin: 原始数组
  • foreach 遍历

  • 语法 : 数组.forEach(function(item,index,origin)){

    console.log(item,index,arr)

    } //里面有三个参数,item:表示元素,index表示下标,origin原数组

    var arr =["aaa","bbb","ccc","ddd"]
    arr.forEash(function(item,index,arr)){
                console.log(item,index,arr)
                }//输出元素,下标,原数组
                //很少用第三个参数
    
  • map 映射(不影响原数组)

    • 语法:数组.map(function(item,index,origin){})
    var arr = [1,2,3,4,5]
    //回调函数
    var arr1 =arr.map(function(item)){
                      return item*item
                      }//return 什么就返回什么,结果为1,4,9,16,25
    var arr2 =arr.map(function(item)){
                      retrun "<li>"+item+"</li>"
                      }//返回<li>1</li>,<li>2</li>.....
    //return 返回的值是什么就映射什么
    
  • filter 过滤

    • 语法:数组.filter(function(item,index,origin){})
    var arr=[100,200,300]
    //回调函数
    var arr1=arr.filter(function(item){
        retrun item>200
    })//结果为300,
    var arr3 =[
        {
            name:"aaa",
            price:100
        }
         {
            name:"bbb",
            price:100
        }
         {
            name:"ccc",
            price:
        }
    ]
    var arr4= arr3.filter(function(item){
        return item.price>200
    })//输出 ccc 300
    
  • every 每一个(每一个都满足条件)

    • 语法:数组.every(function(item,index,origin){})
    • 作用:判断数组内是否都满足条件
    • 返回值 : true/false
    • 判断条件以return 的形式书写
    var arr=[89,90,92,94]
    var arr1=arr.every(function(item){
        return item>=90
    })//结果为false
    //如果满足每一个满足条件结果就为true
    
  • some 只要一个满足条件,就是true

    • 语法:数组.some(function(item,index,origin){})
    • 作用:判断数组内是否有一个满足条件
    • 返回值 : true/false
    • 判断条件以return 的形式书写
    var arr=[89,90,92,94]
    var arr1=arr.some(function(item){
        return item>=90
    })//结果为true
    //都不满足结果为false
    
  • find 查找符合条件的一项,(输出一个)

    • 语法:数组.find(function(item,index,origin){})
    var arr3 =[
        {
            name:"数学",
            price:96
        }
         {
            name:"语文",
            price:100
        }
         {
            name:"英语",
            price:85
        }
    {
            name:"地理",
            price:100
        }
    ]
    var arr4= arr3.find(function(item){
        return item.price===100
    })//输出 语文 100
    //如果有多个满足条件按也只是输出第一个
    //返回值 :找到的数据,如果没有就返回undefined
    
  • findIndex 在数组内查找满足条件的第一项的下标

    • 语法 数组.findIndex(function(item,index,origin){})

    • 返回值 :找到的数据的下标,如果没有就返回-1

    • 查找条件以return 的形式书写

      var arr=["100","200","300","400","500"]
      var arr2=arr.findIndex(function(item,index,oring))(
          rerurn>300
      )
      console.log(arr2)
      
  • reduce 叠加

    • 语法 数组名.redduce (function(prev,item){},初始值)prev上一次的结果,item

    • prev: 表示初始值,或上一次的运算结果

    • item :表示数组每一项的下标(索引)

    • orgin:原始数组

    • 作用: 用来实现叠加效果

    • 返回值最终叠加的结果

    • 注意

      • 叠加的条件以return的形式书写
      • prev, 第一次的值,如果你传递了init们就是init的值,如果没有传递init ,那么就是数组[0]的值
      • 如果传递了init ,循环执行,数组.length,吐过没有传递init,循环执行 数组.length-1 次
    var arr=[1,2,3,4,5]
    var arr1 =arr.reduce(function(prev,item){
        return prev+item
    },0)
    //1 : prev 0 item 1
    //2 : prev 1 item 2
    //3 : prev 3 item 3
    //4 : prev 6 item 4 
    //5:  prev 10 item 5
    // prev 15
    //结果为15
    //叠加的一个效果