什么是es6?
在這里不過多闡述,我也是跟著阮一峰大佬的《es6入門 》來學習的,es6新增了很多的方法、屬性,讓我們在編碼中得到了很高的提升,在這里只對array這塊進行闡述,其他的就過不多介紹了。
言歸正傳,在項目中,經常會遇到處理數據,篩選數據的要求,我們更多的會借助于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中,只需要一行代碼就可以搞定!
Array.from && newSet()
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()可以把類數組的對象轉換為真正的數組對象,有興趣的同學可以對這兩個屬性進行更加深入的了解。
數組過濾
在我們拿到后端數據的時候,可能會對數據進行一些篩選、過濾,傳統的做法如下
// 取出數組中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中的處理方法如下
Array.filter(callback)
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循環,代碼看起來更加的清爽!
Array.every(callback)
這個方法主要是判斷數組中所有的元素都符合條件時,返回true
let a = [1,2,3,4,5];let b = a.every(item => item > 2);console.log(b) // false
Array.some(callback)
這個方法和上一個略有區別,這個方法主要判斷數組中有一個元素符合條件,就返回true
let a = [1,2,3,4,5];let b = a.some(item => item > 2);console.log(b) // true
Array.find(callback)
新聞熱點
疑難解答
圖片精選