在這裏不過多闡述,我也是跟着阮一峯大佬的《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
等等就不一一列舉了。