扩展运算符(…)
扩展运算符 (...) 用于取出参数对象中的所有可遍历属性
[...'hello'] => ['h','e','l','l','o']
和解构赋值一起使用
<script>
let arr = [1, 2, 3];
let arrNew = [...arr, 4, 5]
console.log(arrNew)
</script>
[1, 2, 3, 4, 5]
注意: 扩展运算符不能放中间或者后面 以下是错误的写法:
arrNew = [4, 5, ...arr]
set 对象
set 是一个对象 所以 使用 new关键字 创建 set 对象
特点 : set对象存储的值总是唯一的
set 对象可以使用 new关键字创建
<!-- 数组的去重 , set对象的使用 set对象存储的值总是唯一的 -->
<!-- 字符串的去重 [...new Set('ababbc')].join(''); // "abc" 字符串去重 -->
<!-- set 对象 使用new关键字创建的set对象的存储值总是唯一的 -->
<!-- 然后 对象转化为数组的最简便的方式 : [...obj] -->
<!-- 扩展运算符(…)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 -->
<!-- 扩展运算符 还可以和结构赋值联系在一起 const [first, ...rest] = [1, 2, 3, 4, 5]; -->
<!-- 扩展运算符还可以将字符串转为真正的数组 [...'hello'] -->
<script>
let arr = [1, "1", 2, 1, 1, 3];
let arrSet = new Set(arr)
console.log(arrSet)
</script>
因为 set 是一个对象 所以 new Set()创建的是一个存储值总唯一的对象
打印台显示的内容 : Set(4) {1, "1", 2, 3}
所以数组的去重 还要进行转化
[...new Set(arr)]
<script>
let arr = [1, "1", 2, 1, 1, 3];
console.log([...new Set(arr)])
</script>
打印的结果为 : (4) [1, "1", 2, 3]