js循環/迭代/遍歷有多少方法

js循環/迭代/遍歷有多少方法

JavaScript中存在着不少循環的方法jquery

常見的有for,while,do while,for in等,web

ES5中的forEach數組

ES6的for of數據結構

jquery中封裝的eachsvg

for

侷限性很大,經過累加數組索引,來輸出數組中的值。通常用來遍歷數組,不能遍歷對象,由於對象的長度是undefined,沒法做爲其循環的條件。函數

let person = {
name1:"fur",
age:"1",
    hobbies:{
        study:"code",
        play:"games"
    }
}
let arr = ['fur','furfur','furfur-jiang']
console.log("遍歷對象結果:")
console.log("person對象長度= "+person.length)
console.log("遍歷數組結果:")
for(let i = 0 ; i < arr.length ; i++){
    console.log(arr[i])
}

在這裏插入圖片描述

for - 循環代碼塊必定的次數
while - 當指定的條件爲 true 時循環指定的代碼塊
do/while - 一樣當指定的條件爲 true 時循環指定的代碼塊

for…in

for…in 循環將遍歷對象的全部可枚舉屬性。不但能夠循環遍歷數組,還能夠循環遍歷對象。this

for (let index in Object) {
    //
}
let person = {
name1:"fur",
age:"1",
    hobbies:{
        study:"code",
        play:"games"
    } 
}
let arr = ['fur','furfur','furfur-jiang']
//遍歷對象
console.log("遍歷對象結果:")
for (let i in person) {
    if(person[i] instanceof Object){
        for (let j in person[i]){
        console.log(person[i][j])
        }
    }else{
        console.log(person[i])
    }  
}
//遍歷數組
console.log("遍歷數組結果:")
for (let i in arr) {
    console.log(arr[i])
}

在這裏插入圖片描述

forEach

forEach() 方法用於調用數組的每一個元素,並將元素傳遞給回調函數。可經過參數直接獲取到值,其中item爲該索引下的值,index爲索引,arr爲數組自己,參數名可改變,可是順序不能改變spa

注意:code

  • forEach() 對於空數組是不會執行回調函數的。xml

  • 不能遍歷對象

array.forEach(function(item, index, arr), thisValue)
參數 描述
currentValue 必需。當前元素
index 可選。當前元素的索引值。
arr 可選。當前元素所屬的數組對象。
let arr = ['fur','furfur','furfur-jiang']
//遍歷數組
console.log("遍歷數組結果:")
arr.forEach(function(item, index, arr){
    console.log(item)
    console.log(index)
    console.log(arr)
})

在這裏插入圖片描述

for of

for...of 語句建立一個循環來迭代可迭代的對象。ES6新增的方法,可是缺點是沒法遍歷自定義普通對象。

for...of 容許你遍歷 Arrays(數組), Strings(字符串), Maps(映射), Sets(集合),TypedArray,函數的 arguments 對象,NodeList 對象等可迭代的數據結構等。

語法

for (variable of iterable) {
    statement
}
  • variable:每一個迭代的屬性值被分配給該變量。
  • iterable:一個具備可枚舉屬性而且能夠迭代的對象。
let arr = ['fur','furfur','furfur-jiang']
//遍歷數組
console.log("遍歷數組結果:")
for (let item of arr){
    console.log(item)
}

在這裏插入圖片描述

Set 和 Map 結構

Set 結構遍歷時,返回的是一個值,而 Map 結構遍歷時,返回的是一個數組,該數組的兩個成員分別爲當前 Map 成員的鍵名和鍵值。

let map = new Map()
map.set("name1","fur")
map.set("name2","furfur")
map.set("name3","furfur-jiang")

// 也能夠這樣鏈式定義
//let map = new Map().set("name1","fur").set("name2","furfur").set("name3","furfur-jiang")

console.log("Set結構遍歷:")
for(let [key,value] of map) {
    console.log(key +'.'+ value)
}
console.log("Map結構遍歷:")
for(let i of map){
    console.log(i)
}

在這裏插入圖片描述

each循環

jquery下的each方法有兩種:

  • 一種爲$(’ ').each(),是搭配jq選擇器遍歷jquery對象獲取頁面元素的方法。

  • 一種爲$.each()循環方法,用於循環遍歷數組、對象。

注意:用這個方法須要導入jq的包,each與forEach的item和index放置位置相反哦!

let person = {
name1:"fur",
age:"1",
    hobbies:{
        study:"code",
        play:"games"
    }
}
let arr = ['fur','furfur','furfur-jiang']
//遍歷對象
console.log("遍歷對象結果:")
$.each(person,function(index,item){
    if(item instanceof Object){
        $.each(item,function(index,item){
        console.log(index+'.'+item)
        })
    }else{
        console.log(index+'.'+item)
    } 
})
//遍歷數組
console.log("遍歷數組結果:")
$.each(arr,function(index,item){
        console.log(index+'.'+item)
})

在這裏插入圖片描述 碼字不易,有用的話點個贊呀!謝謝

相關文章
相關標籤/搜索