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新增了for of运算,原先有了for in运算,为什么又增加for of运算,那来看看它俩之间的区别
在使用for in循环数组,for in会遍历数组所有可枚举属性,包括原型链上的,所以for in更适合遍历对象,不要使用for in遍历数组
图片描述

for in 遍历的是数组的索引,而for of遍历的是数组的元素值
图片描述

所以在循环数组的话用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));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值