(1)複製陣列
陣列是復合的資料型別,直接複製的話,只是複製了指向底層資料結構的指標,而不是轉殖乙個全新的陣列。
//複製陣列
const a1 = [1,2];
const a2 = a1;
a2[0] = 3;
console.log(a1); //[3,2]
上面**中,a2
並不是a1
的轉殖,而是指向同乙份資料的另乙個指標。修改a2
,會直接導致a1
的變化。
es5 只能用變通方法來複製陣列
//es5 只能用變通方法來複製陣列
const a3 = [1,2];
const a4 = a3.concat(); //concat() 方法用於連線兩個或多個陣列。該方法不會改變現有的陣列,而僅僅會返回被連線陣列的乙個副本。
a4[0] = 4;
console.log(a3); //[1,2]
console.log(a4); //[4,2]
上面**中,a1
會返回原陣列的轉殖,再修改a2
就不會對a1
產生影響。
es6擴充套件運算子提供了複製陣列的簡寫方法
const a5 = [1,2];
//寫法1
const a6 = [...a5];
console.log(a6); //[1,2]
a6[0] = 3;
console.log(a6); //[3,2];
console.log(a5); //[1,2]
//寫法2
const [...a6] = a5;
console.log(a6); //[1,2];
a6[0] = 4;
console.log(a6); //[4,2]
console.log(a5); //[1,2]
(2)合併陣列
擴充套件運算子提供了陣列合併的新寫法。
//es5方式
var arr1 = [1,2];
var arr2 = [3,4];
console.log(arr1.concat(arr2)); //[1,2,3,4]
//es6方式
let arr3 = [1,2];
let arr4 = [3,4];
console.log([...arr3,...arr4]); //[1,2,3,4]
ES6擴充套件運算子 的應用
es6 擴充套件運算子 可以將陣列或物件拆分成以逗號分隔的引數序列 方法一 常用 let ary1 1 2,3 let ary2 3 4,5 let ary3 ary1,ary2 console.log ary3 1,2,3,3,4,5 方法二 let ary1 1 2,3 let ary2 3 4...
ES6 擴充套件運算子
擴充套件運算子用3個點表示,功能是把陣列或者類陣列物件展開成一系列用逗號隔開的值 1,陣列 let arr red green blue console.log arr red,green,blue拷貝陣列 和object.assign一樣都是淺拷貝 let arr red green blue l...
ES6擴充套件運算子
首先,我們要讀仔細下面這句話,就很容易知道擴充套件運算子的使用了,可以在心裡反覆讀三遍 接下來,我們看下究竟怎麼個情況 宣告乙個方法 var foo function a,b,c console.log a console.log b console.log c 宣告乙個陣列 var arr 1,2...