函数数组

158 阅读2分钟

return

  • 1.结束函数语句,return以下的代码都不执行
  • 2.作为函数的返回值,函数外部变量可以接受return值 arguments
  • 类数组 存放所有的实参
  • 类数组,具有索引,但是不能使用数组下api(pop,push.....)

过滤

  • filter()作用过滤数组中元素返回新数组存放过滤元素
  • 参数 回调函数
  • 回参一 : item 数组元素
  • 回参二 : index 索引值 forEach
  • foEach()作用:遍历数组
  • 参数 是函数
  • 回参一 : 数组元素
  • 会参二 : 索引值 map
    1. 有遍历数组 返回新数组
  • 新数组中内容就是return返回的内容
  • 过滤区别,过滤是根据条件筛选,返回表达式返回值
    1. 修改数据,重组数据,原来的arr没变化
  • 总结 重组过程
    • 1: 数据源,原始数数组
    • 2: 目标结构 ---> map retrun 返回的结构
    • 3: 将return 用变量存储
    • 4: 初始化变量; 结合item 进行数据增删改查处理
    • 5: 尽量不要修改item 如果item修改了 那么数据就变了 reduce
  • reduce() 没有初始值
  • 可以reduce 实现累加等运算,并返回原结果
  • 注意 会参一 初始值为number类型默认赋值 oders[0]
  • reduce(fun,param) 参二作用: 给回参一sum赋初始值改变默认oders[0] some
  • some() 检查数组中是否存在满足条件的元素,满足返回true 不满足 返回false

求最大值

 var arr = [11,22,44,55,66,88,99]
            var max = arr[0]
            for(var i=0;i<arr.length;i++){
                max = Math.max(max,arr[i])
            }
            console.log(max)
            
            // 方法二
            var max = arr.reduce(function(pre,next){
                return Math.max(pre,next)
            })
            console.log(max)
            
            // 方法三 : 利用排序
            arr.sort(function(a,b){
                return b-a
            })
            var max = arr[arr.length-1]
            console.log(arr)
            
            //方法四 
            var max1 = Math.max(...arr)
            console.log(max1)

数组排序

  • 选择排序;将定义某个位置是最大值
  • 用将定的最大值与其他元素比较
  • 在比较过程中进行
  • 如果存在于比最大值还大的数,就进行换值处理
  • 以此类推做到大值在前,小值在后,实现降序效果
var arrObj = [            {name:'aa',age:20},            {name:'bb',age:23},            {name:'cc',age:21},            {name:'dd',age:19},            {name:'ee',age:23},            ]
            for(var i= 0;i<arrObj.length;i++){
                console.log(arrObj[i].age)
                for(var j = i+1;j<arrObj.length;j++)
                    if(arrObj[i].age>arrObj[j].age){
                        var tmp = arrObj[i]
                        arrObj[i] = arrObj[j]
                        arrObj[j] = tmp
                    }
            }
            console.log(arrObj)

数组去重

var arrObj = [
            {product:'苹果',code:'123',id:0},
            {product:'苹果',code:'123',id:0},
            {product:'香蕉',code:'133',id:0},
            {product:'香蕉',code:'133',id:0},
            {product:'苹果',code:'123',id:0},
            {product:'苹果',code:'123',id:0}
            ]

            var res = []
            var flag = false
            for(var i= 0;i<arrObj.length;i++){
                // 验证 code 是否存在重复
                for(var j = 0;j<res.length;j++){
                           if(arrObj[i].code===res[j].code){
                        flag = true 
                        break
                    }else{
                        flag = false
                    }
                }
                if(!flag){
                    res.push(arrObj[i])
                }
            }
            console.log(res)

Array.from()

  • Array.from() 将类数组变为真的数组 Ojbect.hasOwnProperty(keys)
  • 判断对象下是否存在某个属性keys,存在true 不存在 false