【封装函数】数组处理篇

70 阅读2分钟

一、求数组的最大值

1、ES6语法里的扩展运算

    function getMax(arr) {
        return Math.max(...arr)
    }

2、通过sort()从小到大排序,加上ES6里at()获取最后一个值【也可以通过获取数组最后一个下标arr.lengt-1】

    function getMax(arr) {
        return arr.sort(function(a,b){a-b}).at(-1)
    }
function getMax(arr) {
        return arr.sort(function(a,b){a-b})[arr.length-1]
    }

3、通过apply把数组变成有参序列

function getMax(arr) {
        return Math.max.apply(null,arr)
    }

4、使用ES6里的累加器

function getMax(arr) {
        // max初始值为0
        let max=arr.reduce((max,item)=>{
            return item>max?item:max
        })
        return max
    }

5、for循环求最大值

function getMax(arr) {
        let max=arr[0]
        for(let i=0;i<arr.length;i++)
        {
            max=arr[i]>max?arr[i]:max;
        }
        return max
    }

二、求数组的最小值

1、ES6里的扩展运算

 function getMin(arr) {
        return Math.min(...arr)
    }

2、通过sort()从小到大排序,也可以通过获取数组第一个下标

function getMin(arr) {
        return arr.sort(function(a,b){a-b})[0]
    }

3、通过apply把数组变成有参序列

function getMin(arr) {
        return Math.min.apply(null,arr)
    }

4、for循环求最小值

function getMax(arr) {
        let min=arr[0]
        for(let i=0;i<arr.length;i++)
        {
            min=arr[i]>min?min:arr[i];
        }
        return min
    }

三、数组的去重处理

1、使用es6里set不能出现重复的特性+扩展运算符

function removeDuplicate(arr) {
        return [...new Set(arr)]
    }

2、使用es6里的set+Array.from()【把类似数组的对象转换为真正的数组】

    function removeDuplicate(arr) {
        return Array.from(new Set(arr))
    }

3、利用splice()去重

    function removeDuplicate(arr) {
        for(let i=arr.length-2;i>0;i--){
            for(let j=0;j<i;j++){
                if (arr[j]==arr[i]) {
                    arr.splice(j,1)
                }
            }
        }
        return arr
    }

四、获取数组中的奇偶数

    let arr=[1,2,3,4]
    let odd = arr.filter(x=>x%2===1)
    console.log(odd);//Array [ 1, 3 ]
    let even = arr.filter(x=>x%2===0)
    console.log(even);//Array [ 2, 4 ]

五、遍历数组获取数组里对象中的某个键值

arr=[{text:1,value:2}...] 把每个对象里value值组合成数组。

let r=[]
for(let item of arr){
r.push(item.value)
}

六、遍历数组,在数组中的每一个对象里添加新的键值对isChecked:false

res.data.forEach(item=>{
item.isChecked=false
})