遍歷陣列的常用方法

2022-02-20 14:09:11 字數 3492 閱讀 5194

1.最傳統方法 for迴圈

1

var arr = ["first","second","third","fourth",3,5,8];

2for(var i = 0; i < arr.length;i++)5//

輸出:6

first

7second

8third

9fourth

10 3

11 5

12 8

for… in

1

var arr = ["first","second",'third' ,"fourth",3,5,8];

2for(var i in

arr)5//

輸出結果為:

6 first/0

7 second/1

8 third/2

9 fourth/3

10 3/4

11 5/5

12 8/6

for…of

1

var arr = ["first","second",'third' ,"fourth",3,5,8];

2for(var

item of arr)5//

輸出結果:

6first

7second

8third

9fourth

10 3

11 5

12 8

雖然for… in 、 for… of 都能夠變歷陣列,但是兩者還是有很大區別的,先說結論:

兩者的主要區別在於他們的迭代方式

2.foreach方法:被傳遞給foreach的函式會在陣列的每個元素上執行一次,元素作為引數傳遞給該函式

1

var arr = ["first","second","third","fourth",3,5,8];2//

element 表示arr的單元項,index 表示arr單元項對應的索引值

3 arr.foreach(function

(element,index))7//

輸出結果:

8 first/0

9 second/1

10 third/2

11 fourth/3

12 3/4

13 5/5

14 8/6

注意:未賦值的值是不會在foreach迴圈迭代的,但是手動賦值為undefined的元素是會被列出的

1

var arr1 = ["first","second", ,"fourth",3,5,8];

2 arr1.foreach(function

(element,index))6//

輸出結果

7 first/0

8 second/1

9 fourth/3

10 3/4

11 5/5

12 8/6

3.map 遍歷陣列,並通過callback對陣列元素進行操作,並將所有操作結果放入陣列中並返回該陣列

1

var arr = ["first","second",'third' ,"fourth"];

2var arr2 = arr.map(function

(item))

5console.log(arr2);6//

輸出:7 [first,second,third, fourth]

4.filter( )返回乙個包含所有在**函式上返回為true的元素新陣列,**函式在此擔任的是過濾器的角色,當元素符和條件,過濾器就返回true,而filter則會返回所有符合過濾條件的元素

1

var arr = ["first","second",'third' ,"fourth",3,5,8];

2var arr3 = arr.filter(function

(item)6})

7console.log(arr3);8//

輸出結果:

9 [3,5,8]

注意:find() 對於空陣列,函式是不會執行的。find() 並沒有改變陣列的原始值。

5.find( )返回通過測試(函式內判斷)的陣列的第乙個元素的值

當陣列中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之後的值不會再呼叫執行函式。如果沒有符合條件的元素返回 undefined

1

var arr = [1,2,3,4,5,6,7];

2var newarr = arr.find(function

(elem));

5console.log(newarr);6//

輸出結果

7 6

6. every() 當陣列中的每乙個元素在callback上被返回true時就返回true(注意:要求每乙個單元項都返回true時才為true)

every()與filter()的區別是:後者會返回所有符合過濾條件的元素;前者會判斷是不是陣列中的所有元素都符合條件,並且返回的是布林值

1

var arr = ["first","second",'third' ,"fourth",3,5,8];

2var bol = arr.every(function

(element)6})

7 console.log(bol); //

false

7.some()只要陣列中有一項在callback上就返回true

every()與some()的區別是:前者要求所有元素都符合條件才返回true,後者要求只要有符合條件的就返回true

1

var arr = ["first","second",'third' ,"fourth",3,5,8];

2var bol = arr.some(function

(element)6})

7 console.log(bol); //

true

8.findindex() es6陣列新api,找到符合條件的索引並返回

1

var ages = [3, 10, 18, 20];23

function

checkadult(age)

function(currentvalue, index,arr)

引數currentvalue:必需。當前元素

index:可選。當前元素的索引

arr:可選.當前元素所屬的陣列物件

遍歷陣列的常用方法

var arr first second third fourth 3,5,8 for var i 0 i arr.length i 輸出 first second third fourth 3 5 8 被傳遞給foreach的函式會在陣列的每個元素上執行一次,元素作為引數傳遞給該函式 var ar...

常用的遍歷陣列,Map,Set的方法

一,for of用法 適用iterable型別的集合即array,set,map var a a b c var s new set a b c var m new map 1,x 2,y 3,z for var x of a for var x of s for var x of m 陣列執行結果...

遍歷陣列,遍歷物件的方法

遍歷陣列 方法1 for 迴圈 使用臨時變數將陣列長度快取起來,避免重複獲取陣列長度 for var i 0,leng arr.length i leng i 方法2 foreach迴圈 遍歷陣列中的每一項,沒有返回值,對原陣列沒有影響,不支援ie arr.foreach item,index,ar...