遍歷數組

方法1 -- for

var arr = [1,2,3,4,5,6,7,8,9]
for(var i = 0; i<arr.length;i++){
    console.log(arr[i])
}

方法2 -- for...in

var arr = [1,2,3,4,5,6,7,8,9]
for(var i in arr){
    console.log(arr[i])
    conosle.loh(arr[i] + '/' + i) // 還可以添加新屬性
}

方法3 -- for...of

var arr = [1,2,3,4,5,6,7,8,9]
for(var i of arr){
    console.log(i)
}

for...in 和 for...of 兩者的主要區別在於他們的迭代方式
推薦
在循環對象屬性的時候使用for in
在遍歷數組的時候使用for of

  • for...in 循環出來的是key, for...of循環出來的是value
  • for...in 是ES5 標準,for...of 是ES6標準,兼容性可能存在些問題,請注意使用
  • for...of 不能遍歷普通的對象,需要和Object.keys() 搭配使用

方法4 -- forEach

/* forEach方法:被傳遞給forEach的函數會在數組的每個元素上執行一次,元素作爲參數傳遞給該函數 */

var arr = [1,2,3,4,5,6,7,8,9]
arr.forEach(function(element,index){
    console.log(element)
    console.log(element + '/' + index)
})

【!注意!】未賦值的值是不會在forEach循環迭代的,但是手動賦值爲undefined的元素是會被列出的

var arr = [1,,3,undefined,5,6,7,8,9]
arr.forEach(function(element,index){
    console.log(element + '/' + index)
})

方法5 -- map

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

var arr = [1,2,3,4,5,6,7,8,9]
var arr2 = arr.map(function(item){
    console.log(item )
 })

方法6 -- filter

filter()返回一個包含所有在回調函數上返回爲true的元素新數組,回調函數在此擔任的是過濾器的角色,當元素符和條件,過濾器就返回true,而filter則會返回所有符合過濾條件的元素

var arr = ['aaa','bbb','ccc',1,2,3]

var arr2 = arr.filter(function(item){
    if(typeof item == 'number'){
        return item;
    }
})
console.log(arr2);

方法7 -- every

every() 當數組中的每一個元素在callback上被返回true時就返回true(注意:要求每一個單元項都返回true時才爲true)

var arr = ['aaa','bbb','ccc',1,2,3]

var bol = arr.every(function(element){
    if(typeof element == 'string'){
        return element;
    }
})
console.log(bol); //false

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

方法8 -- some

some()只要數組中有一項在callback上就返回true

var arr = ['aaa','bbb','ccc',1,2,3]

var arr = ["first","second",'third' ,"fourth",3,5,8];
var bol = arr.some(function(element){
    if(typeof element == 'string'){
        return element;
    }
})
console.log(bol); //true

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章