- 前言
作为前端的小白不得不掌握一点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))
let arr = [1,2,3];
let newArr = arr.reduce((item,value) => item + value ); //筛选出值为1的
console.log(arr); //[1,2,3]
console.log(newArr); //6- 数组去重
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,....)
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}
//]