扩展运算符
1.合并数组
let arr1 = [1, 2, 3];
let arr2 = ["c"];
let arr3 = ["d", "e"];
console.log(arr1.concat(arr2, arr3));
console.log([...arr1, ...arr2, ...arr3]);
2.与数组的解构赋值相结合
const [first, ...reset] = [1, 2, 34, 56];
console.log(first, reset);
const [f, ...r] = [];
console.log(f, r);
3.替代数组的 apply 方法
function getSum(x, y, z) {
return x + y + z;
}
let arr = [1, 2, 3];
console.log(getSum.apply(null, arr));
console.log(getSum(...arr));
console.log(Math.max(...arr));
console.log(Math.max.apply(null, arr));
let ar1 = [1, 2, 3];
let ar2 = [4, 5, 6];
ar1.push(...ar2);
console.log(ar1);
ar1.push.apply(ar1, ar2);
console.log(ar1);
4.类数组转换为数组
let divs = document.getElementsByTagName("div");
console.log(divs);
console.log([...divs]);
5.合并对象
let obj1 = { x: 1, y: 2 };
let obj2 = { z: 3 };
console.log({ ...obj1, ...obj2 });
6.笔试题
let obj = { x: 1, y: 2, z: 3 };
console.log(...obj);
obj[Symbol.iterator] = function () {
return {
next: function () {
let objArr = Reflect.ownKeys(obj);
if (this.index < objArr.length - 1) {
let key = objArr[this.index];
this.index++
return {
value: obj[key]
}
} else {
return {
done: true
}
}
},
index: 0
}
}
console.log(...obj);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步