1.for
迴圈,可以break結束迴圈。
arr =[1
,2,3
,4,5
,6]for
(let i =
0; i < arr.length; i++
)
2.for...in
迴圈,用於物件迴圈遍歷,可獲取物件的對應鍵值
[注意
]:for…in
迴圈物件的所有列舉屬性,需再使用hasownproperty()
方法來忽略繼承屬性,即在迴圈內部判斷一下,某個屬性是否為物件自身的屬性,避免出現遍歷失真的情況。
let obj =
for(
let key in obj)
}// tom
// male
// 18
3.map
方法將陣列的所有成員依次傳入引數函式,然後把每一次的執行結果組成乙個新陣列返回。迴圈中途無法停止,會將所有成員遍歷完。let arr =[1
,2,3
,4,5
]let arr2 = arr.
map(
(n)=>
)console.
log(arr2)
// [2,3,4,5,6]
console.
log(arr)
// [1,2,3,4,5]
此外,map方法接受乙個函式作為引數。該函式呼叫時,map方法向它傳入三個引數:當前成員item
、當前位置index
和陣列本身arr
。let objarr =[,
,,]objarr.
map(
(item, index, arr)
=>
)
4.foreach
的使用方法和map差不多,只是foreach
方法不返回值,只用來運算元據
,且迴圈中途無法停止,會將所有成員遍歷完。
傳入三個引數:當前成員item、當前位置index和陣列本身arr。
let objarr =[,
,,]objarr.
foreach
((item, index, arr)
=>
)
5.filter
過濾迴圈
filter方法用於過濾陣列成員
,滿足條件的成員組成乙個新陣列
返回。它的引數是乙個函式,所有陣列成員依次執行該函式,返回結果為true的成員組成乙個新陣列返回。該方法不會改變原陣列
。
傳入三個引數:當前成員item
、當前位置index
和陣列本身arr
。
let objarr =[,
]let obj2 = objarr.
filter
((item, index, arr)
=>
)console.
log(obj2)
//
ecmascirpt5 中 array 類中的 filter 方法使用目的是移除所有的 」false「 型別元素 (false, null, undefined, 0, nan or an empty string):let arr =[3
,4,5
,2,3
, undefined,
null,0
,""];
let arrnew = arr.
filter
(boolean)
;console.
log(arrnew)
// [3, 4, 5, 2, 3]
boolean 是乙個函式,它會對遍歷陣列中的元素,並根據元素的真假型別,對應返回 true 或 false
.
6. object.keys 遍歷物件的屬性
object.keys方法的引數是乙個物件,返回乙個陣列。該陣列的成員都是該物件自身的(而不是繼承的)所有屬性名,且只返回可列舉的屬性。
let obj =
;console.
log(object.
keys
(obj)
)// ["name", "***", "age"]
console.
log(object.
values
(obj)
)// ["tom", "male", "18"]
判斷乙個物件是否是空物件,可以用object.
keys
(obj)
.length>
0
總結對比
方法適用於
是否停止迴圈
用法for
陣列break結束迴圈
for (let i = 0; i < arr.length; i++)
for…in
陣列break結束迴圈
for(let key in obj)
map陣列
無法停止
objarr.map((item, index, arr)=>)
foreach
陣列無法停止
objarr.foreach((item, index, arr)=>)
filter
陣列------
let arr2 = arrobj.filter((item,index,arr)=>)
object.keys
陣列------
object.keys(obj) ,返回的是陣列
說下js中常見的幾種迴圈
var arr 1,2,3,4,5 arr.foreach item,index,array var arr 1,2,3,4,5 var arr1 arr.map item,index,array console.log arr1 2,4,6,8,10 var arr 1,2,3,4,5 var f...
js迴圈遍歷
方式一 var arr 1,2,3,4,5 for let i 0 i方式一利用for迴圈來遍歷陣列的缺點就是 不夠簡潔。下面介紹乙個寫法更加簡潔的方式。方式二var arr 1,2,3,4,5 arr.foreach function value,index 利用foreach迴圈 量少了很多,寫...
JS中常見的演算法
常見演算法 1累加 累積 累加 將一系列的資料加到乙個變數裡面。最後的達到累加的結果 比如 將1到 100的數求累加和。小球從高處落下,每次返回到原來的一半,求第十次小球落地時小球走過的路程。var h 100 var s 0 for var i 0 i 10 i s s 2 100 累積 將一系列...