js 循環(huán)之間的區(qū)別

1、for

for (var i = 0; i < 10; i++) {
    console.log(i)
}

可以使用break和continue

break 跳出整個(gè)循環(huán)

continue 跳出當(dāng)前循環(huán)

2、forEach

[1,2,3,4].forEach((item,index,arr) => {
    console.log(item,index,arr)
})

遍歷數(shù)組中的每一項(xiàng),沒(méi)有返回值,對(duì)原數(shù)組沒(méi)有影響

break 和 continue 都不可使用,會(huì)報(bào)錯(cuò)

return不會(huì)生效

3、for in

可以使用break 和 continue

  1. 遍歷對(duì)象

    得到數(shù)組的index值

    for (i in {id:1,name:"張三"}) {
        console.log(i)
    }
    
  2. 遍歷數(shù)組

    得到對(duì)象的key值

    for (i in [1,2,3]) {
        console.log(i)
    }
    

4、for of

可以使用break 和 continue

可以用來(lái)遍歷可迭代對(duì)象Arrays(數(shù)組), Strings(字符串), Maps(映射), Sets(集合)

得到value值

for (i of [1,2,3]) {
    console.log(i)
}

不可以遍歷普通對(duì)象

for (i of {id:1}) {
    console.log(i)
}
//拋出錯(cuò)誤
//TypeError: {(intermediate value)} is not iterable

5、map

var arr = [1,2,3,4,5,6];
var mapArr = arr.map((item,index) => {
    return item/2
})
console.log(mapArr) //[0.5, 1, 1.5, 2, 2.5, 3]
console.log(arr) //[1, 2, 3, 4, 5, 6]

map方法返回一個(gè)新的數(shù)組,數(shù)組中的元素為原始數(shù)組調(diào)用函數(shù)處理后的值

map方法不會(huì)改變?cè)紨?shù)組

6、find

var arr = [1,2,3,4,5,6,4,2,4];
var findArr = arr.find((item,index) => {
    return item == 4
})
console.log(findArr) //4
console.log(arr) //[1, 2, 3, 4, 5, 6, 4, 2, 4]

不會(huì)改變?cè)瓟?shù)組,找到第一個(gè)符合條件的數(shù)據(jù)

查詢數(shù)組中符合條件的第一個(gè)元素,如果沒(méi)有符合條件的元素則返回undefined

7、filter

var arr = [1,2,3,4,5,6,4,2,4];
var filterArr = arr.filter((item,index) => {
    return item == 4
})
console.log(filterArr)  //[4, 4, 4]
console.log(arr)   //[1, 2, 3, 4, 5, 6, 4, 2, 4]

不會(huì)改變?cè)瓟?shù)組 ,會(huì)找到所有符合條件的數(shù)據(jù)

過(guò)濾數(shù)組元素,返回過(guò)濾后的數(shù)組,如果沒(méi)有符合條件的元素則返回空數(shù)組

注意區(qū)分filter和find的區(qū)別

8、every

every() 方法用于檢測(cè)數(shù)組所有元素是否都符合指定條件(通過(guò)函數(shù)提供)。

every() 方法使用指定函數(shù)檢測(cè)數(shù)組中的所有元素:

如果數(shù)組中檢測(cè)到有一個(gè)元素不滿足,則整個(gè)表達(dá)式返回 false ,且剩余的元素不會(huì)再進(jìn)行檢測(cè)。

如果所有元素都滿足條件,則返回 true。

注意: every() 不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)。

注意: every() 不會(huì)改變?cè)紨?shù)組。

let a = [3, 4, 5, 6].every((item) => {
    return item > 2
})
console.log(a);//true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容