ES6展开运算符的10个用法

Posted on   猫头唔食鱼  阅读(1329)  评论(0编辑  收藏  举报

展开运算符的用法1:传参

      // 展开运算符的用法1 : 传参 
        function test(a,b) {
            return a + b ;
        }

        var arr = [1,2];

        console.log(test(...arr)); // 3 

 参数不确定时

复制代码
        function test(...m) {
            var s = 0
            for(var i of m){
                s = s + i;
                console.log(i); // 1,6,3
            }
            return  s ;
        }
        console.log(test(1,6,3));   // 10 
复制代码

 

展开运算符的用法2:往数组添加元素

//展开运算符的用法2 : 往数组里添加元素
        var items = [1,2,3];
        var newArr  =  [...items,4]
        console.log(newArr); // [1,2,3,4]

 

展开操作符的用法3:合并对象属性,和Object.assign作用是一样的

//展开操作符的用法3:合并对象属性
        var obj = {name:"zs",age:12};
        var obj2 = {age:14,addr:"gz"}
        console.log({...obj,...obj2}); // {name:"zs",age:14,addr:"gz"}

 展开操作符的用法4:合并数组,但不去重

        // 写法1:
       let e = [1,2,3],f = [1,2,3],g = [...e,...f]
       console.log(g);
       // 写法2:push
       console.log(e.push(...f)); // 返回长度 6

 

展开操作符用法5:解构赋值
 //展开操作符用法5:解构赋值
        var [a,...b] = [3,4,5];
        console.log(a); // 3
        console.log(b); // [4,5]

 

展开操作符用法6:分解字符串
   //展开操作符用法6:分解字符串
        var str = "test";
        console.log(...str); // t e s t 
        var [a,b,c,d] = [...str]
        console.log(a); // t 
        console.log(b); // e 
        console.log(c); // s 
        console.log(d); // t

 

 展开操作符用法7:展开dom元素,把dom元素变成数组

 let div =  document.querySelectorAll('div'),c = [...div]  
 c.forEach(v=>console.log(v.innerText))

 

展开操作符用法8:展开表达式

  //  扩展运算符放置表达式
        //    example1 数组
        let d = [...(5 > 3 ? [5] : [3]), 6]
        console.log(d);// [5,6]

        // example2 对象
        var obj12 = { ...(5 > 3 ? { name: 'ww' } : { name: 'zs' }), age: 12 }
        console.log(obj12);

 

展开操作符用法9:复制数组

  let h = [1,2,3],i =[...h]
       console.log(i);

 

 展开操作符的用法10:把set集合变成数组

   let j = [1,2,3],set = new Set([...j])
       console.log([...set]);

 展开set集合和Array.from(set) 的作用是一样的,都是把set集合转为数组

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示