JavaScript中遍歷的幾種方法
1.while迴圈
while後面跟迴圈條件和執行語句,只要滿足條件,就會一直執行裡面的執行
var i = 0 while(i<10){ console.log(i) i++ }
2.do...while迴圈
與while相似,但是他會先執行一次,再做判斷條件
var i=0 do{ console,log(i) i++ }while(i<10)
3.for迴圈
var arr = [0,1,2,3] for(let i = 0;i < arr.length;i++){ console.log(i) }
4.forEach迴圈
var arr = [0,1,2,3] arr.forEach((item,index)=>{ console.log(`下標${index}的數為${item}`) })
5.for...in迴圈
一般用來遍歷物件的屬性,遍歷陣列的話拿到的是下標
var obj = {name:'snail',age:18} for(var key in obj){ console.log(key) }
6.for...of迴圈
可以遍歷拿到每一個元素
var str = 'snail' for(var item of str){ console.log(item) }
7.map對映
map方法將陣列的所有成員依次傳入引數函式,然後把每一次的執行結果組成一個新陣列返回。
該函式呼叫時,map方法向它傳入三個引數:當前成員、當前位置和陣列本身。
注意:是返回一個新陣列,而不會改變原陣列。
var arr = [0,1,2,3] arr.map((item)=>{ return item*2 })
8.filter()過濾迴圈
filter方法用於過濾陣列成員,滿足條件的成員組成一個新陣列返回。
它的引數是一個函式,所有陣列成員依次執行該函式,返回結果為true的成員組成一個新陣列返回。該方法不會改變原陣列。
var arr = [0,4,2,3,5] arr.filter((item)=>{ return (item>3) })
9.some(),every()遍歷
統計陣列是否滿足某個條件,這兩個方法返回一個布林值,表示判斷陣列成員是否符合某種條件。
它們接受一個函式作為引數,所有陣列成員依次執行該函式。該函式接受三個引數:當前成員、當前位置和整個陣列,然後返回一個布林值。
some
方法是隻要一個成員的返回值是true
,則整個some
方法的返回值就是true
,否則返回false
。
every
方法則相反,所有成員的返回值都是true
,整個every
方法才返回true
,否則返回false
。兩相比較,some()只要有一個是true,便返回true;而every()只要有一個是false,便返回false.
這兩個方法在實際開發中,大有可用之處。比如在判定使用者是否勾選了不可操作的資料,或者是否勾選了一條可以操作的資料可以使用這兩個方法遍歷迴圈陣列。
10.reduce()遍歷
reduce
方法第一個引數是一個函式。該函式接受以下四個引數。
1.Accumulator(累計器)
2.Current Value(當前值)
3.Current Index(當前索引)
4.Source Array(源陣列)
函式的返回值分配給累計器,該返回值在陣列的每個迭代中被記住,並最後成為最終的單個結果值。
這四個引數之中,只有前兩個是必須的,後兩個則是可選的。