持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情
前言
下面我将分享几个常用的Es6的用法,直接提升你写代码的效率,希望对大家有所帮助同时欢迎讨论指出问题!
1.解构赋值
常见对象如下:
let obj = {
name: '张三',
age: '24',
like: 'apple'
};
在你不使用解构赋值的时候,你是怎么给对象数组赋值的呢?
let name = obj.name;
let age = obj.age;
解构 :是将一个数据结构分解为更小的部分的过程。ES6 中从数组和对象中提取值对变量进行赋值。
直接使用Es6的解构赋值,一行代码解决问题,它不香吗?
let {name,age} = obj;
2.new Set
常见对象,数组如下:
let arr=【1,2,3,4,5,6,7,8】
let arr1=【6,7,8,9,10】
在你不使用扩展运算符的时候,你是怎么合并数组,而且数组去重呢?
let newarr = arr.concat(arr1)
for (let i = 0, len = newarr.length; i < len; i++) {
for (let j = i + 1; j < len; j++) {
if (newarr[i] == newarr[j]) {
newarr.splice(j, 1);
len--;
j--;
}
}
直接使用扩展运符+new Set 来处理,它不香吗?
let newArr=[...new Set(arr,arr1)]
3.模板字符串 ``
拼接多个字符串的时候你们是怎么拼接的呢?
let obj = {
name: '张三',
age: '24',
like: 'apple'
};
let text=obj.name+"是一个好孩子,他今年"+obj.age+"他喜欢"+obj.like
模板字符串是增强版的字符串 ,用反引号``标识 。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
直接使用它来拼接不香吗?
let obj = {
name: '张三',
age: '24',
like: 'apple'
};
let text=`${obj.name}是一个好孩子,他今年${obj.age}他喜欢${obj.like}`
4.es6 flat()
扁平化: 扁平化就是将多维数组变成一维数组,不存在数组的嵌套 一般数组扁平化你是怎么做的呢?使用reduce+递归 还是循环+递归呢?
let arr = [1, [2, [3, [4, 5]]], 6]
function flatten(arr) {
let result = []
for (let i = 0, len = arr.length; i < len; i++) {
let falg = arr[i] instanceof Array
if (falg) {
result = result.concat(flatten(arr[i]))
} else {
result.push(arr[i])
}
}
return result
}
flat()方法是es6自带的API,可指定的深度递归遍历数组,所有元素与遍历到的子数组中的元素合并为一个新数组返回。
直接使用它不香吗?
let arr = [1, [2, [3, [4, 5]]], 6]
var newArray = arr.flat([depth])
结束语
希望大家能够喜欢我的文章,我真的很用心在写,也希望通过文章认识更多志同道合的朋友。
最后伙伴们,如果喜欢我的可以给点一个小小的赞👍或者关注➕都是对我最大的支持。