1. 程式人生 > >ES6中的函式和陣列補漏

ES6中的函式和陣列補漏

物件的函式解構

我們在前後端分離時,後端經常返回來JSON格式的資料,前端的美好願望是直接把這個JSON格式資料當作引數,傳遞到函式內部進行處理。ES6就為我們提供了這樣的解構賦值。

let json={
	a:'leiy',
	b:'ly'
}
function fun({a,b="yu"}){
	console.log(a,b);
}
fun(json)

列印結果:

leiy ly

陣列的函式解構

函式能解構JSON,那解構我們的陣列就更不在話下了,我們看下邊的程式碼。我們宣告一個數組,然後寫一個方法,最後用…進行解構賦值。

let json=['rr','uu','tt']
function fun(a,b,c){
	
console.log(a,b,c); } fun(...json)

列印結果:

rr uu tt

in的用法

in是用來判斷物件或者陣列中是否存在某個值的。我們先來看一下用in如何判斷物件裡是否有某個值。

物件判斷

let obj={
	a:'leiy',
	b:'ly'
}
console.log('a' in obj);

列印結果:

true

陣列判斷

先來看一下ES5判斷的弊端,以前會使用length屬性進行判斷,為0表示沒有陣列元素。但是這並不準確,或者說真實開發中有弊端。

let arr=[,,,,,]
console.log(arr.length);

列印結果:

5

上邊的程式碼輸出了5,但是陣列中其實全是空值,這就是一個坑啊。那用ES6的in就可以解決這個問題。

let arr=[,,,,,]
console.log(0 in arr);
let arr1=['ly','leiy']
console.log(0 in arr1);

列印結果:

false
true

注意:這裡的0指的是陣列下標位置是否為空。

陣列的遍歷方法

1.forEach

let arr=['tt','uu','ii']
arr.forEach(function(val,index){//es5語法
	console.log(val,index);
})
arr.forEach((val,index)=>console.log(val,index))//es6語法

列印結果:

tt 0
uu 1
ii 2
tt 0
uu 1
ii 2

2.filter

let arr=['tt','uu','ii']
arr.filter(function(x){//es5語法
	console.log(x);
})
arr.filter(x=>console.log(x))//es6語法

列印結果:

tt
uu
ii
tt
uu
ii

3.some

let arr=['tt','uu','ii']
arr.some(function(x){//es5語法
	console.log(x);
})
arr.some(x=>console.log(x))//es6語法

列印結果:

tt
uu
ii
tt
uu
ii

4.map

let arr=['tt','uu','ii']
console.log(arr.map(x=>'web'))//es6語法

列印結果:

[ 'web', 'web', 'web' ]

map在這裡起到一個替換的作用

陣列轉換字串:

在開發中我們經常會碰到把陣列輸出成字串的形式,我們今天學兩種方法,你要注意兩種方法的區別。

join()方法

let arr=['tt','uu','ii']
console.log(arr.join('|'))

列印結果:

tt|uu|ii

join()方法就是在陣列元素中間,加了一些間隔,開發中很有用處。

toString()方法

let arr=['tt','uu','ii']
console.log(arr.toString())
列印結果:
tt,uu,ii