扩展运算符可以将数组或者对象转为用逗号分隔的参数序列

扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象中

用法:

1、将一个数组放入另一个数组中

var middle = [3, 4];
var arr = [1, 2, middle, 5, 6];
console.log(arr);
// [1, 2, [3, 4], 5, 6]

使用扩展运算符:

var middle = [3, 4];
var arr = [1, 2, …middle, 5, 6];
console.log(arr);
// [1, 2, 3, 4, 5, 6]

2、拼接数组

使用扩展运算符可以代替concat()来拼接数组。

let ary1 = [1,2,3];
let ary2 = [3,4,5];//concat,concat返回值为拼接后的数组,原来两个数组不变
let ary = ary1.concat(ary2);
console.log('ary',ary); //[ 1, 2, 3, 3, 4, 5 ]
console.log('ary1',ary1) //[ 1, 2, 3 ]//方法1  同concat
let ary3 = [...ary1,...ary2];
console.log('ary3',ary3) //[ 1, 2, 3, 3, 4, 5 ]//方法2  用push,返回值为新数组个数
let ary4 = ary1.push(...ary2);
console.log('ary4',ary4)  //6
console.log('ary1',ary1) //[ 1, 2, 3, 3, 4, 5 ]

3、扩展运算符可以与解构赋值结合起来,生成数组

//扩展运算符可以与解构赋值结合起来,生成数组
const [first,...rest] = [1,2,3,4,5];
console.log('first',first) //1
console.log('rest',rest) //[ 2, 3, 4, 5 ]

rest参数补充:

JS对于传入参数的数量没有限制,如果传入参数过多,函数会自动将多余的参数舍弃,如果传入的参数少于定义传参数量,调用的函数会返回NaN。JS引入了rest参数,可以处理过多传入的参数

4、Math,例子:获取数组最大值

console.log('Math',Math.max(100, 3, 4)) //100//在没有扩展运算符,在数组上使用Math.max()最容易方法就是使用.apply()。
var arr = [2, 4, 8, 6, 0];
function max(arr) {return Math.max.apply(null, arr);
}
console.log('apply',max(arr)); //8//使用扩展运算符
var max1 = Math.max(...arr);
console.log('...',max1);//8//numStr:['1','5','9','2','0'],
console.log('numStr',Math.max(...this.numStr)); //9let strArr = ['h','e','s','a','c']
console.log('strArr',Math.max(...strArr)); //NaN

5、扩展运算符可以将类数组或可遍历对象转换为真正的数组

let oDivs = document.getElementsByTagName('div');//获取页面中所有的div标签
oDivs = [...oDivs];//将伪数组转换为真正的数组

6、字符串转数组

let str = "hello";
let chars = [...str];
console.log(chars); //[ "h", "e", "l", "l", "o" ]//使用split
let splitArr = str.split('')
console.log('split',splitArr) //[ "h", "e", "l", "l", "o" ]

ES6扩展运算符用法相关推荐

  1. ES6扩展运算符的几个小技巧

    es6扩展运算符,也就是...  ,作用是将一个数组转为用逗号分隔的参数序列. 那么问题来了,我们为啥要用这么奇怪的东东涅,当然因为它能大大提高我们的开发效率.所以,可别小看这三个点. 1.复制数组( ...

  2. ES6 - 扩展运算符与Object.assign对象拷贝与合并

    文章目录 扩展运算符能做什么? 什么是深浅拷贝 使用ES6扩展运算符 对象浅拷贝 对象合并 Object.assign Object.assign详解 Object.assign()实用 给对象添加属 ...

  3. php es6写法,ES6...扩展运算符(示例代码)

    在数组中的应用 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,++将一个数组转为用逗号分隔的参数序列++. console.log(...[1, 2, 3]) // 1 ...

  4. ES6——扩展运算符的作用以及使用场景

    文章目录 对象扩展运算符 解构赋值 扩展运算符 数组扩展运算符 替代函数的apply() 方法 扩展运算符的应用 复制数组 合并数组 与解构赋值结合 字符串 实现了Iterator接口的对象 对象扩展 ...

  5. js数组合并、去重、降维(ES6:扩展运算符、Set)

    js数组合并.去重.降维 1.合并 1.1使用concat()进行合并数组 function get_concat(collection_a, collection_b) {return collec ...

  6. ES6——扩展运算符(...)

    文章目录 一.扩展运算符(...) 二.数组扩展运算符的应用 1.合并数组 2.与解构赋值结合 3.字符串转数组 4.实现了 Iterator 接口的对象 5.Map 和 Set 结构, Genera ...

  7. 扩展运算符用法实例总结

    - ES6的扩展运算符 扩展运算符可以将数据展开 不能单独使用扩展运算符展开数组,可以在参数中使用,将参数数组转成参数列表. 如果扩展运算符后面跟的是变量,那么接受单独多余的数组放置到数组中. 扩展运 ...

  8. JS之ES6扩展运算符三个点(...)用于剥离{} 获取属性值

    1.用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 let bar = { a: 1, b: 2 }; let baz = { ...bar }; // { a: 1, b: 2 } 等价于 ...

  9. ES6——扩展运算符/三点运算符(...)

    扩展运算符(spread)是三个点(...). 数组的扩展运算符 对于数组来说,它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) ...

最新文章

  1. Windows平台搭建-----C语言
  2. 这个假发太逼真!GAN 帮你换发型,alignment 步骤去掉生硬感
  3. 运行jar应用程序引用其他jar包的四种方法
  4. 《jQuery权威指南》学习笔记——第二章
  5. Maven 的相关配置【源码下载、镜像源修改】
  6. redis.mecmcached和mongoDB的区别
  7. CentOS查看软件源提供的软件版本命令
  8. xbmc电脑版本和手机版本学习教程
  9. Async/Await FAQ
  10. 【算法】剑指 Offer 29. 顺时针打印矩阵
  11. win11天气小组件如何开启 Windows11开启天气组件的设置方法
  12. Chrome浏览器如何完美实现截长屏幕
  13. 2018上半年区块链安全报告
  14. 【Python】国内生产总值分析预测
  15. C++中的各种进制转换函数汇总
  16. vue2 - 基于Export2Excel.js导出Excel案例(js-xlsx插件二次封装使用)
  17. Web 2.0 创业神器为何天生敏捷?
  18. [转]关于卢平的一些想法
  19. Ailurus 小熊猫
  20. 怎么修改html模板里的背景,怎么修改网页背景

热门文章

  1. 机器学习三大神器GBDT、XGBoost、LightGBM
  2. topology-preserving
  3. office2007尾注参考文献后添加致谢的方法
  4. 使用全屏沉浸模式(Using Immersive Full-Screen Mode)
  5. 计算机技术在设计中的应用浅论,论计算机技术在美术设计中的应用
  6. 2019年支付违规八项典型举报案例
  7. Win10按键位置修改
  8. python——元类、元类实现orm
  9. html时间选择器时分秒,原生js日历日期控件带时分秒日期选择器
  10. Vue从后往前截取字符串的方法