1. 将一个数组,变为参数序列
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
};
let arrA = [3, 45];
let arrB = [3, 45,"ddddddddd"];
const resultA=sumAll(...arrA);
const resultB=sumAll(...arrA,...arrB);
console.log(resultA,resultB); // 48 "96ddddddddd"
2. 合并数组/使用push将一个数组添加到另一个数组的尾部
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
const newArr=[...arr1, ...arr2];
arr1.push(...arr2);
console.log(newArr,arr1) // [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
3. 将字符串转换为数组
var print=[...'hello'];
console.log("f",print); // ["h", "e", "l", "l", "o"]
4. 转换伪数组为真数组
<p></p>
<p></p>
<p></p>
<script>
var nodeList = document.querySelectorAll('p');
var array = [...nodeList];
console.log(array); // [p, p, p]
</script>
5. map结构
Map对象就是简单的键值对映射
let map = new Map([
[1, 'one'],
[2, 'two'],
[3, 'three'],
]);
let arrKey = [...map.keys()]; //map.keys() 是具有iterator接口的伪数组 MapIterator {1, 2, 3}
let arrValue=[...map.values()];
console.log(arrKey,arrValue) // [1, 2, 3] ["one", "two", "three"]
6. 对象合并与拷贝
var obj1={a: 1, b: 2} , d = 4;
var temp={...obj1}; // 拷贝 {a: 1, b: 2}
var tee={...obj1 , c:3 , d ,...{e:5}}; // 合并 {a: 1, b: 2, c: 3, d: 4, e: 5}
//等同于 var old=Object.assign({},obj1,{c:3},{d:4},{e:5});