ES6扩展运算符
展开数组
console.log(...[3, 4, 5])
3 4 5
等价于
console.log(3, 4, 5)
合并数组
let arr1 = [1, 2, 3]
let arr2 = [4, 5, 6]
let arr3 = [7, 8, 9]
console.log([...arr1, ...arr2, ...arr3])
[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
提取数组/元素
let [var1, ...arr5] = [1, 2, 3, 4, 5, 6]
console.log(var1)
console.log(arr5)
1
[ 2, 3, 4, 5, 6 ]
扩展Set和Map
Map,Set,数组就是从Iterator接口实现来的,Object不是,所以扩展Object会报错
let set1 = new Set()
set1.add(1)
set1.add(2)
set1.add(3)
console.log(...set1)
1 2 3
let map1 = new Map();
map1.set('k1', 1);
map1.set('k2', 2);
map1.set('k3', 3);
console.log(...map1)
[ ‘k1’, 1 ] [ ‘k2’, 2 ] [ ‘k3’, 3 ]
拷贝数组对象
const years = [2018, 2019, 2020, 2021];
const copyYears = [...years];
console.log(copyYears); // [ 2018, 2019, 2020, 2021 ]
数组去重
const arrayNumbers = [1, 5, 9, 3, 5, 7, 10, 4, 5, 2, 5];
const newNumbers = [...new Set(arrayNumbers)];
console.log(newNumbers); // [ 1, 5, 9, 3, 7, 10, 4, 2 ]
字符串转字符数组
const title = "china";
const charts = [...title];
console.log(charts); // [ 'c', 'h', 'i', 'n', 'a' ]