入职前必须掌握的es6语法

245 阅读2分钟
  • 前言

      作为前端的小白不得不掌握一点es6语法来提高工作的效率,特别是在请求时处理后端的数据十分高效,本人在大数据项目中大有体会,接下来分享一下工作中我常用到的es6语法,如有错误请高人指出

  • Array.prototype.map(callback)

    map里传入一个callback的回调函数作为参数,其中callback可以传入两个参数,callback(currentItem,currentIndex),分别代表当前数组的值以及数组下标,最后该方法会重新返回一个新的数组且不改变原数组。

let arr = [1,2,3];
let newArr =  arr.map(item => item + 1 );
console.log(arr); //[1,2,3]
console.log(newArr); //[2,3,4]

  • Array.prototype.forEach(callback)

       和map一样,唯一区别就是最后该方法不会重新返回一个新的数组。

let arr = [1,2,3];
let newArr =  arr.forEach(item => item + 1 );
console.log(arr); //[1,2,3]
console.log(newArr); //undefined

  • Array.prototype.filter(callback(currentItem,currentIndex))

       一般用作筛选数组里的值,filter里传入一个callback的回调函数作为参数,其中callback可以传currentItem以及currentIndex,最后返回布尔值为真的数组

let arr = [1,2,3];
let newArr =  arr.filter(item => item === 1 ); //筛选出值为1的
console.log(arr); //[1,2,3]
console.log(newArr); //[1]

  • Array.prototype.reduce(callback(accumulator, currentValue, currentIndex, array))
        一般整合数组里的值,filter里传入一个callback的回调函数作为参数,其中callback可以传accumulator为累加器累加回调的返回值以及currentValue为当前的值,最后返回累加后的值

let arr = [1,2,3];
let newArr = arr.reduce((item,value) => item + value ); //筛选出值为1的
console.log(arr); //[1,2,3]
console.log(newArr); //6

  • 数组去重
    快捷方法可以使用es6中的Set数据结构对数据进行去重,实例后的数组是一个类数组的形式,需要用到Array.from()转化为数组类型(Array)

let arr = [1,1,1,2,2,1,11,33]
let newArr = Array.from(new Set(arr)) // [1,2,11,33]
  • Object.assign(obj1,obj2,....)
    该方法一般用在对象值的覆盖,因为对象的key是唯一的,不同指标但相同类型的对象可以合并,像我之前接到一个技术上的需求,要求把后台返回来的数据,相同日期不同指标的数据进行合并,例如

let data = [
{date_day_key:'2019-01-02',newVisitors:1000},
{date_day_key:'2019-01-02',oldVisitors:1200},
{date_day_key:'2019-01-03',newVisitors:1220},{date_day_key:'2019-01-03',oldVisitors:1110}
]//简单模拟后台返回来的数据
let newData =[]
let axis = []//设置日期存放数组
axis = Array.from(new Set(data.map(item=> return item['date_day_key'])))//取出日期并去重
//开始找出相对应的日期对象进行合并
axis.map(axisItem=>{
    let obj={}
    data.map(dataItem=>{
        if(dataItem['date_day_key'] === axisItem)
        {
          obj=  Object.assign(obj,dataItem) 
        } 
    })
    newData.push(obj)
})
console.log(newData)
//[
//{date_day_key:'2019-01-02',newVisitors:1000,oldVisitors:1200},
//{date_day_key:'2019-01-03',oldVisitors:1110,newVisitors:1220}
//]