优秀的编程知识分享平台

网站首页 > 技术文章 正文

ES6 对象和数组——扩展运算符(es6数组的扩展)

nanyue 2024-10-11 13:39:38 技术文章 3 ℃

对象:

...用于从对象中取出属性值,拷贝到当前的对象中。
//对象中的扩展运算符
var o={a:1,b:2};
var o2={...o}; //{a:1,b:2} === Object.assign({},o)
var o3={...o,c:3};// 合并 {a:1,b:2,c:3}
var o3={...o,b:3}; //属性重名会覆盖 {a:1,b:3}
var o4={...o,...{c:3,d:4}} //{a:1,b:2,c:3,d:4}

数组:

//数组中的扩展运算符 参数序列 序列化JSON.stringify(o)
var arr=[1,2,3,4];
var arr2=[...arr]; //[1,2,3,4]
//[3,10] 1.计算数组的和
function fun(a,b){
	return a+b;
}
var n=[3,10];
fun(...n); //13

//2.数组的合并
var arr3=[1,2,3];
var arr4=[4,5];
// arr3.push(arr4); //[1, 2, 3, [4,5]]
//concat();
var a=arr3.concat(arr4);
// console.log(a); //[1, 2, 3, 4, 5]
//es6
arr3.push(...arr4);
console.log(arr3); //(5) [1, 2, 3, 4, 5]
//另一种简洁 , 数据是追加 不会去重和替换等处理
var a2=[...arr3,...arr4]; //(5) [1, 2, 3, 4, 5]
var a3=[1,...arr3,2,...arr4,...[6,7]];//方式很灵活

扩展运算符和解构结合

let [a,...b]=[1,2,3,4,5];
a; //a
b; //[2, 3, 4, 5]
let [a,...b]=[];
a;//undefined
b;//[]
let [a,...b]=[1];
a;//1
b;//[]

*注意点:扩展运算符用于数组解构,只能放在参数的最后一位,其他位置会报错,如下是两个坑

let [...a,b]=[1,2,3,4];//error
let [a,...b,c]=[1,2,3,4];//error
最近发表
标签列表