核心提示:主要介绍扩展运算符...是es6的一种新特性(当然现在es6也不算新啦),作用是将一个数组转化为用逗号分隔的参数序列。用了几次这个es6新特性后发现这个方法真的很强大很实用,于是在下面总结了一些比较实...
主要介绍
扩展运算符...是es6的一种新特性(当然现在es6也不算新啦),作用是将一个数组转化为用逗号分隔的参数序列。
用了几次这个es6新特性后发现这个方法真的很强大很实用,于是在下面总结了一些比较实用的功能。
使用语法
扩展运算符之后可以直接跟一个数组或者是小括号括起来的一个表达式,甚至可以是一个函数,但是函数的返回值必须是一个数组。
console.log(...[1, 2, 3]); console.log(...(x>1?[3,6,9]:[2,4,6])) const test=()=> [1,2,3]; console.log(...test())
注:当扩展运算符...后跟的是一个空数组,则不会产生任何效果。
实用功能
1.数组去重
[...new Set(arr)]
2.获取数组最大值最小值
Math.max(...[1,2,3,5,-23,12]) //12 Math.min(......[1,2,3,5,-23,12]) //-23
3.将Unicode字符转化为普通字符
console.log([...'\u8001\u53f8\u673a']) //["老", "司", "机"]
4.实现数组的深度复制或合并
let arr1=[5,6,7], arr2=[9,6,3]; let newArr=[...arr]; newArr=[...arr1,...arr2]
5.获取函数不定参数个数
const fn = (...arr) => arr.length; console.log(fn(3,2,4,5)); //4 console.log(fn(1,2)); //2