es6 陣列擴充套件方法

ii_chengzi發表於2018-11-18

1.擴充套件運算子

含義: 擴充套件運算子,三個點(...),將一個陣列轉為用逗號分隔的引數順序。

例如:

console.log([1,2,3]);

console.log(...[1,2,3]);

結果: [1,2,3]

1,2,3

(1)用法: 作為函式引數

function f(x,y,z) {

console.log(y);

// 1

}

let args = [0,1,2];

f(...args);

(2)用法:求陣列的最大值

Math.max(..[14,4,44]) //44

(3)應用:複製陣列

const a1 = [1,2];

const a2 = a1;

a2[0] = 2;

a1 // [2,2]

(4)應用: 合併陣列

[1,2,...more]

(5)應用:與解構賦值結合

[a,...reast] = list

(6)應用: 可以將字串轉為真正的陣列

console.log([...'hello'])

[ "h", "e", "l", "l", "o" ]

2.Array.from()

方法用於將兩個類物件轉為真正的陣列。

(1)應用:類陣列物件轉為真正的陣列

let arrayLike = {

'0':'a',

'1':'b',

'2':'c',

length:3

}

let arr = Array.from(arrayLike);

console.log(arr);

//["a", "b", "c"]

(2)應用:將字串轉為陣列

var arr = Array.from('hello');

console.log(arr);

["h", "e", "l", "l", "o"]

如果是一個真正的陣列那麼返回原陣列

Array.from 還可以接受第二個引數。

let arr = Array.from([1,2,3],(x)=> x*x);

console.log(arr);

// [1, 4, 9]

3.Array.of 方法用於將一組數值,轉為陣列

例如:

var arr = Array.of(3,11,8);

console.log(arr);

// [3, 11, 8]

4.陣列例項的 copyWithin()

陣列例項的copyWithin 方法,在當前陣列內部,將指定位置的成員複製到其他位置,

(會覆蓋原來成員),然後返回當前陣列,也就是說,使用這個方法,會修改當前陣列。

它接受三個引數:

(1)target(必需):從該位置開始替換資料。

(2)start(可選):從該位置開始讀取資料,預設為 0。如果為負值,表示倒數。

(3)end(可選):到該位置前停止讀取資料,預設等於陣列長度。如果為負值,表示倒。

5.陣列的例項的 find() 和findIndex()

陣列例項的find 方法,用於找出第一個符合條件的陣列成員,它的引數是一個回撥函

數,所有出租成員一次執行該回撥函式,直到找到的哥返回值為true的成員,然後

返回該成員,如果沒有符合條件的返回aundefined

let a = [1,4,-5,10].find((n)=> n <0)

console.log(a); // -5

let b = [1,5,10,15].find(function (value,index,arr) {

return value > 9;

})

console.log(b); // 10

findIndex 方法的用法與find 方法返回非常類似,返回第一個符合條件的陣列

成員的位置,如果所有成員不符合條件返回-1。

例如[1,5,10,15].findIndex(function(value,index,arr){

return value > 9;

})

6.陣列例項的fill()

fill 方法使用給定值,填充一個陣列;

var arr = ['a','b','c'].fill(7);

console.log(arr); // [7,7,7]

7.陣列例項的 entries(), keys() 和 values()用於遍歷陣列,他們都是返回一個遍歷器物件。

keys() 是對鍵名的遍歷,values() 是對鍵值的變數,entries() 是對鍵值對的遍歷。

for (let index of ['a','b'].keys()){

console.log(index);

}

8.陣列例項的includes()

Array.prototype.includes 方法返回一個布林值,表示某個陣列是否包含給定的值。

[1,2,3].includes(2) // true

[1,2,3,4].includes(4) //false

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2220505/,如需轉載,請註明出處,否則將追究法律責任。

相關文章