ES6 實踐當中的小經驗

解析賦值
現假設有以下一個json數據json

var jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

結果以下的兩種方式輸出的結果徹底相同:數組

let { id, status, data: number } = jsonData;

console.log(id, status, number); // 42, 'OK', [867, 5309]
let { id, status, data } = jsonData;

console.log(id, status, data); // 42, 'OK', [867, 5309]

其實並不知道爲何兩種方式都支持,以爲就應該是第二種方式才正統數據結構

ES6給數組擴展了一個fill方法,使用方法以下所示:spa

['a', 'b', 'c'].fill(7)
// [7, 7, 7]

也就是說它是給數組填充值,可是若是填充的是引用類型的話,則事實上改變其中一個全部的都會改變
以下圖所示:
圖片描述3d

ES6新增了for of運算,原先有了for in運算,爲何又增長for of運算,那來看看它倆之間的區別
在使用for in循環數組,for in會遍歷數組全部可枚舉屬性,包括原型鏈上的,因此for in更適合遍歷對象,不要使用for in遍歷數組
圖片描述code

for in 遍歷的是數組的索引,而for of遍歷的是數組的元素值
圖片描述對象

因此在循環數組的話用for of會更加方便一些blog

Array.from是將相似數組對象(部署了Iterator接口的數據結構,好比字符串和Set結構)轉化爲真正的數組,可是Array.from還接受第二個參數,做用相似於map方法用來對每一個元素進行處理,將處理後的值放入返回的數組索引

console.log(Array.from([1, 2, 3], (x) => x * x));

數組合並接口

var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1.push(...arr2);
console.log(arr1); // 0,1,2,3,4,5

數組求最大值

console.log(Math.max(...[14, 3, 77]))

擴展運算符還能夠替代Object.assign

let ab = { ...a, ...b }; //這句話跟下面的一樣做用
let ab = Object.assign({}, a, b);

去除數組重量的值

var arrs = [1, 2, 3, 1, 3, 4];
console.log([...new Set(arrs)]); // [1, 2, 3, 4]

另外一種方法去重:

function unique(array) {
  return Array.from(new Set(array));
}
相關文章
相關標籤/搜索