Es6 那么好用,你倒是用啊!

113 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

WechatIMG111.jpeg

前言

下面我将分享几个常用的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=【12345678】
 let arr1=【678910

在你不使用扩展运算符的时候,你是怎么合并数组,而且数组去重呢?

  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])

结束语

希望大家能够喜欢我的文章,我真的很用心在写,也希望通过文章认识更多志同道合的朋友。

最后伙伴们,如果喜欢我的可以给点一个小小的赞👍或者关注➕都是对我最大的支持。