在这里不过多阐述,我也是跟着阮一峰大佬的《es6入门》来学习的,es6新增了不少的方法、属性,让咱们在编码中获得了很高的提高,在这里只对array这块进行阐述,其余的就过很少介绍了。es6
言归正传,在项目中,常常会遇处处理数据,筛选数据的要求,咱们更多的会借助于for
循环来完成,好比:数组去重,传统方法以下(如下全部实例只列举一种)后端
let a = [1,2,2,3,3,4,5];
let b = [a[0]];
for(let i = 0; i < a.length; i++){
let flag = false;
for(let j = 0; j < b.length; j++){
if( a[i] === b[j] ){
flag = true;
break;
}
}
if( !flag ){
b.push(a[i])
}
}
console.log(b) // [1,2,3,4,5]
复制代码
上面的是es6以前的处理方法,能够解决问题,但代码量可着实很多啊!在es6中,只须要一行代码就能够搞定!数组
let a = [1,2,2,3,3,4,5];
let b = Array.from(new Set(a))
console.log(b) // [1,2,3,4,5]
复制代码
是否是及其简单!其中 new Set()
会把重复的数据过滤到,获得一个类数组的对象,Array.from()
能够把类数组的对象转换为真正的数组对象,有兴趣的同窗能够对这两个属性进行更加深刻的了解。bash
数组过滤函数
在咱们拿到后端数据的时候,可能会对数据进行一些筛选、过滤,传统的作法以下学习
// 取出数组中name为kele的数组集合
let a = [
{
name: 'kele',
title: '可口可乐'
},
{
name: 'kele',
title: '芬达'
},
{
name: 'wlg',
title: '王老吉'
}
]
let b = [];
for(let i = 0; i < a.length; i++){
if( a[i].name === 'kele' ){
b.push(a[i])
}
}
console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]
复制代码
es6中的处理方法以下ui
let a = [
{
name: 'kele',
title: '可口可乐'
},
{
name: 'kele',
title: '芬达'
},
{
name: 'wlg',
title: '王老吉'
}
]
let b = a.filter(item => item.name === 'kele');
console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]
复制代码
一样的,Array.filter()
让咱们摆脱了for
循环,代码看起来更加的清爽!编码
这个方法主要是判断数组中全部的元素都符合条件时,返回truespa
let a = [1,2,3,4,5];
let b = a.every(item => item > 2);
console.log(b) // false
复制代码
这个方法和上一个略有区别,这个方法主要判断数组中有一个元素符合条件,就返回truecode
let a = [1,2,3,4,5];
let b = a.some(item => item > 2);
console.log(b) // true
复制代码
这个方法是返回数组中符合条件的第一个元素,不然就返回undefined
let a = [1,2,3,4,5];
let b = a.find(item => item > 2);
console.log(b) // 3
复制代码
这个方法是返回数组中符合条件的第一个元素的索引值,不然就返回-1
let a = [1,2,3,4,5];
let b = a.findIndex(item => item > 2);
console.log(b) // 2 符合条件的为元素3 它的索引为2
复制代码
这个方法是判断数组中是否包含有指定的值,包含就返回true,不然就是false,它接受两个参数,第一个为搜索的值(必填),第二个为搜索开始的位置(选填,默认从0开始)
let a = [1,2,3,4,5];
let b = a.includes(2);
console.log(b) // true
复制代码
这个方法是返回一个根据你callback函数中的条件,返回一个全新的数组
let a = [1,2,3,4,5];
let b = a.map(item => item * 2);
console.log(b) // [2,4,6,8,10]
复制代码
这个方法是根据callback中的条件对数组中的每一个元素都进行类加的操做,返回一个全新的值,下面作两个不一样的例子,便于理解
/** 第一种 **/
let a = [1,2,3];
let b = a.reduce((i, j) => {
return i + j;
}, 0);
console.log(b) // 6
/** 第二种 **/
let a = [1,2,3];
let b = a.reduce((i,j) => {
i.push(j)
return i
},[0])
console.log(b) // [0,1,2,3]
复制代码
这个能够很方便的帮咱们实现合并两个数组
let a = [1,2,3];
let b = [4,5,6];
let c = [...a,...b];
console.log(c) // [1,2,3,4,5,6];
复制代码
小结:基本上新增的一些方法用到的就是这些,一些老的方法例如push
、shift
、sort
等等就不一一列举了。