ES6數組擴展

一、擴展運算符數組

擴展運算符(spread)是三個點(...).它比如rest參數的逆運算,將一個數組轉化爲用逗號分隔的參數序列;數據結構

console.log(...[2,3,4,99])   // 2,3,4,99

二、Array.from  用於將兩類對象轉爲真正的數組:類數組對象(array-like object)(包含length屬性,索引:0~n)函數

和可遍歷(iterable)的對象(ES6 中的 Set 和 Map);spa

let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; 
console.log(Array.from(arrayLike))   //[ 'a', 'b', 'c' ]

只要是部署了Iterator接口的數據結構,Array.from()都能將其轉爲數組rest

console.log(Array.from('hello'))
[ 'h', 'e', 'l', 'l', 'o' ]

三、Array.of 用於將一組值,轉化爲數組。這個方法的主要目的是彌補數組構造函數Array()的不足。由於參數個數的不一樣,會致使Array()的行爲有差別code

Array.of(3,4,5)   // [3,4,5]

// 構造函數建立數組
var arr = new Array(10)  // 長度爲10的數組

四、數組實例的 find() 和 findIndex()對象

數組實例的find方法,用於找出第一個符合條件的數組成員。它的參數是一個回調 函數,全部數組成員依次執行該回調函數,blog

直到找出第一個返回值爲true的成員, 而後返回該成員。若是沒有符合條件的成員,則返回undefined 。find方法的回調索引

函數能夠接受三個參數,依次爲當前的值、當前的位置和原數組。接口

var a=[1, -1,4, -5, 10].find((n) => n < 0) 
console.log(a)   // -5

數組實例的findIndex方法的用法與find方法很是相似,返回第一個符合條件的數組 成員的位置,若是全部成員都不符合條件,則返回-1。

var b = [1, 5, 10, 15].findIndex(function(value, index, arr) { return value > 9; }) 
console.log(b) //2

五、數組實例 的 fill()

fill方法使用給定值,填充一個數組。

['a', 'b', 'c'].fill(7) // [7, 7, 7]
new Array(3).fill(7) // [7, 7, 7]

六、數組實例的 entries(),keys()

這兩個方法用於遍歷數組。它們都返回一個遍歷器對象,能夠用for...of循環進行遍歷,惟一的區別是keys()是對鍵名的遍歷, entries()是對鍵值對的遍歷;

for (let index of ['a', 'b'].keys()) {
    console.log(index);// 0,1
}
for (let [index, elem] of ['a', 'b'].entries()) {
    console.log(index, elem);// 0 'a',1 'b'
}

七、數組實例的 includes()

該方法返回一個布爾值,表示某個數組是否包含給定的值,與字符串的includes方法 相似。

[1, 2, 3].includes(3) // true
[1, 2, 3].includes(9) // false
[1, 2, NaN].includes(NaN) // true
相關文章
相關標籤/搜索