ES6陣列方法

2022-06-21 22:48:16 字數 2931 閱讀 6780

類似字串的indexof()方法

1 stringobject.indexof(searchvalue,fromindex)

2 3 var data = [2, 5, 7, 3, 5];

4 console.log(data.indexof(5, "x")); // 1 ("x"被忽略)

5 console.log(data.indexof(5, "3")); // 4 (從3號位開始搜尋)

6 console.log(data.indexof(4)); // -1 (未找到)

7 console.log(data.indexof("5")); // -1 (未找到,因為5 !== "5")

類似indexof()方法(順序相反)

array在es5新增的方法中,引數都是function型別,預設有傳參(遍歷的陣列內容,對應的陣列索引,陣列本身)

.foreach(function(value, index, array) );

foreach方法 遍歷陣列元素

1 var colors = ['red', 'green', 'blue'];

2 colors.foreach(function(color) );

foreach除了接受乙個必須的**函式引數,還可以接受乙個可選的上下文引數(改變**函式裡面的this指向)(第2個引數)如果這第2個可選引數不指定,則使用全域性物件代替(在瀏覽器是為window),嚴格模式下甚至是undefined

array.foreach(callback,[ thisobject])

對映(一一對應)。.map();基本用法跟foreach方法類似:

array.map(callback,[ thisobject]);

但是callback需要有return值(如果沒有,就像會返回undefined)

1 var a1 = ['a', 'b', 'c'];

2 var a2 = a1.map(function(item) );

5 console.log(a2); // logs a,b,c

過濾篩選(callback在這裡擔任的是過濾器的角色,當元素符合條件,過濾器就返回true,而filter則會返回所有符合過濾條件的元素)。

array.filter(callback,[ thisobject]);

指數組filter後,返回過濾後的新陣列。用法跟map相似

1 var a1 = ['a', 10, 'b', 20, 'c', 30];

2 var a2 = a1.filter(function(item) );

5 console.log(a2); // logs 10,20,30

every(callback[, thisobject])當陣列中每乙個元素在callback上被返回true時就返回true。

1 function isnumber(value)

4 var a1 = [1, 2, 3];

5 console.log(a1.every(isnumber)); // logs true

6 var a2 = [1, '2', 3];

7 console.log(a2.every(isnumber)); // logs false

some(callback[, thisobject]) 只要陣列中有一項在callback上被返回true,就返回true。

1 function isnumber(value)

4 var a1 = [1, 2, 3];

5 console.log(a1.some(isnumber)); // logs true

6 var a2 = [1, '2', 3];

7 console.log(a2.some(isnumber)); // logs true

8 var a3 = ['1', '2', '3'];

9 console.log(a3.some(isnumber)); // logs false

對陣列中的所有元素呼叫指定的**函式。該**函式的返回值為累積結果,並且此返回值在下一次呼叫該**函式時作為引數提供。

1 var a = [10, 20, 30];

2 var total = a.reduce(function(first, second) , 0);

5 console.log(total) // prints 60

reduce的作用完全相同,唯一的不同是,reduceright是從右至左遍歷陣列的元素。

array.isarray直接寫在了array構造器上,而不是prototype物件上。array.isarray會根據引數的[[class]]內部屬性是否是」array」返回true或false.

array.isarray("no u")

falsearray.isarray(["no", "u"])// true

真實陣列具有slice方法,可以對陣列進行淺複製(不影響原陣列),返回的依然是陣列。類似陣列雖然有length屬性,可以使用for迴圈遍歷,卻不能直接使用slice方法,會報錯!但是通過array.prototype.slice.call則不會報錯,本身(類似陣列)被從頭到尾slice複製了一遍——變成了真實陣列!

將類似陣列的物件(比如arguments)轉換為真實的陣列

array.prototype.slice.call(arguments)

es6之陣列方法

一丶類陣列 const divs document.getelementsbytagname div console.log divs htmlcollection console.log divs instanceof array false1.用es5的方法將類陣列變為陣列,借助slice方法 ...

ES6陣列方法總結

關於陣列中foreach map filter reduce some every 的總結let array 1,2,3,4 array.foreach item,index,array foreach會遍歷陣列,沒有返回值,不允許在迴圈體內寫return,不會改變原來陣列的內容.let array...

ES6 陣列方法拓展

array.from方法用於將兩類物件轉為真正的陣列 類似陣列的物件 array like object 和可遍歷 iterable 的物件 包括es6新增的資料結構set和map 下面是乙個類似陣列的物件,array.from將它轉為真正的陣列。let arraylike es5的寫法 var a...