ES6 实践当中的小经验

剖析赋值
现假定有以下一个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要领,运用要领以下所示:

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

也就是说它是给数组添补值,然则假如添补的是援用范例的话,则事实上转变个中一个一切的都邑转变
以下图所示:
《ES6 实践当中的小经验》

ES6新增了for of运算,本来有了for in运算,为何又增添for of运算,那来看看它俩之间的区分
在运用for in轮回数组,for in会遍历数组一切可罗列属性,包含原型链上的,所以for in更适合遍历对象,不要运用for in遍历数组
《ES6 实践当中的小经验》

for in 遍历的是数组的索引,而for of遍历的是数组的元素值
《ES6 实践当中的小经验》

所以在轮回数组的话用for of会越发轻易一些

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));
}
    原文作者:angelayun
    原文地址: https://segmentfault.com/a/1190000010119284
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞