ES学习的数组对对方法和一些常见的功能实现

这篇博客详细介绍了JavaScript中常见的数组操作,包括遍历、求和、扁平化、合并、去重和冒泡排序。此外,还展示了如何使用Set和reduce方法进行去重,以及如何通过对象属性进行数据处理,如对象合并、遍历和获取值。同时,文章涵盖了对象的合并、遍历及函数封装。
摘要由CSDN通过智能技术生成
      //1.数组常用方法 遍历 合并去重 冒泡求和 隐射
        let arr = [1, 23, 4, 5, 54, 5]
        //遍历求和
        var sum = 0
        arr.forEach(function (val, idx) {
            sum += val

        })
        console.log(sum);

        for (var k of arr) {
            console.log(k);

        }

        for (var k in arr) {
            console.log(k);

        }


        //扁平化数组
        let newArr = arr.flat(Infinity)
        //    let newArr= arr.flat(Infinity)
        console.log(newArr);


        function fn(arr) {
            return arr.reduce((pre, cur) => {
                if (Array.isArray(cur)) {
                    return [...pre, ...fn(cur)]
                } else {
                    return [...pre, cur]
                }
            }, [])
        }

        arr.reduce((pre, cur) => {
            if (Array.isArray(cur)) {
                return [...pre, ...fn(cur)]
            } else {
                return [...pre, cur]
            }
        }, [])


        // 合并   
        let arr1 = [1, 57, 6, 75, 4]
        // let arr3 =[...arr,...arr1]
        let arr3 = arr1.concat(arr)
        console.log(arr3);


        //去重
        //1   利用indexof方法
        let newArr1 = arr.reduce((pre, cur) => {
            if (pre.indexOf(cur) == -1) {
                pre.push(cur)
            }
            return pre
        }, [])
        console.log(newArr1);

        //2 利用 incCludes方法
        let newArr2 = arr.reduce((pre,cur)=>{
                if(!pre.includes(cur)){ //判断 累加器里面有没有当前值
                    return [...pre,cur]
                }
                return pre
                
        },[])
        console.log(newArr2);
        


        //3
        let newArr3 = Array.from(new Set(arr))
        console.log(newArr3);
            //set是一种数据结构 他的成员值是唯一的 可以利用它的特性去数组去重
        let setter = new Set(arr)
        console.log(setter);
        

        //3  函数封装
        function dedupe(arr) {
            // return [...new Set(arr)]   用扩展
            return Array.from(new Set(arr))  //用 from()方法
        }
        dedupe(arr)
        console.log(dedupe(arr));






        //冒泡排序
        arr.sort(function (a, b) {
            // return a-b //从大到小
            return b - a
        })
        console.log(arr);






        //对象方法 
        let sex = '男'
        let obj = {
            name: "zs",
            age: 10,
            sex,
            fn: function () {},
            fn1: () => {},
            fn2() {},


        }

        //1对象的合并
        let obj1 = {
            name: "sz"
        }
        let obj2 = {
            age: 19
        }
        //  Object.assign(obj1,obj2) 
        // Object.assign (obj1,obj2)

        let obj3 = {
            ...obj,
            ...obj2
        }
        console.log(obj3);





        //对象的遍历
        for (let k in obj3) {
            console.log(k);

        }

        //遍历k
        let key = Object.keys(obj3)
        console.log(key);

        //遍历val
        let val = Object.values(obj3)
        console.log(val);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值