ES6引入了spread運算符,它使我們可以在需要多個參數或元素的地方擴展數組和其他表達式。 下面的ES5代碼使用apply()來計算數組中的最大值:
var arr = [6, 89, 3, 45];
var maximus = Math.max.apply(null, arr); // returns 89
我們必須使用Math.max.apply(null,arr),因爲Math.max(arr)返回NaN。 Math.max()需要使用逗號分隔的參數,但不能使用數組。spread運算符使該語法更易於閱讀和維護。
const arr = [6, 89, 3, 45];
const maximus = Math.max(...arr); // returns 89
… arr返回解壓縮的數組。換句話說,它擴展了數組。但是,spread運算符只能在原位工作,就像在函數的自變量或數組文字中一樣。以下代碼不起作用:
const spreaded = ...arr; // will throw a syntax error
小測
使用傳播運算符將arr1的所有內容複製到另一個數組arr2中。
const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY'];
let arr2;
arr2 = []; // Change this line
console.log(arr2);
答案
const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY'];
let arr2;
arr2 = [...arr1]; // Change this line
console.log(arr2);