JavaScript數組的循環和叠代
阿新 • • 發佈:2017-07-30
中斷 font 順序 some 普通 叠代 執行 dex 條件
JavaScript數組的循環和叠代
循環
for循環
普通版for循環
var arr = ["a","b","c","d"]; for (let i = 0; i < arr.length; i++){ console.log(arr[i]); .//a b c d }
優化版for循環
var arr = ["a","b","c","d"]; for (let i = 0; len = arr.length;i < len; i++){ console.log(arr[i]); .//a b c d }
for in 循環
var arr = ["a","b","c","d"]; for (let i in arr ){ console.log(arr[i]); .//a b c d }
for of 循環
var arr = ["a","b","c","d"]; for (let item of arr){ console.log(item); .//a b c d }
說明
- for-in 是遍歷集合對象的鍵名, for-of 是直接遍歷集合對象的鍵值。
- for-of 的遍歷方式性能要高於 for-in ,但仍比不不上普通的 for 循環。
- for-of 不僅支持數組的遍歷,還支持大多數類數組對象。同時也支持 ES6 裏新增的 Map 和 Set 對象
數組叠代
forEach()
描述:按順序讓數組中每一項依次執行某種相同的操作。
var arr = [10, 11, 12,13, 14]; arr.forEach(function(item, index){ console.log( item); //10 11 12 13 14 console.log( index); //0 1 2 3 4 })
說明:
- 數組自帶的 forEach 循環,使用頻率較高,但實際上性能比普通 for 循環弱。
forEach 不能使用 continue 和 break 語句句中斷循環,也不能使用 return 語句句返回到外層函 數。
map()
描述:按順序讓數組中每一項依次執行某種相同的操作,然後返回一個新數組
var arr = [10, 11, 12,13, 14]; var newArr = arr.map(function(item, index){ return item * 2; }) console.log( newArr); //[20, 22, 24, 26,28]
filter()
描述:按順序讓數組中每一項依次執行某種相同的操作,然後篩選出符合條件的元素,組成新數組並返回。
var arr = [10, 11, 12,13, 14]; var newArr = arr.filter(function(item, index){ return item % 2 == 0; }) console.log( newArr); //[10, 12, 14]
feduce()
描述:按順序讓數組中的前項和後項做某種計算,並累計返回最終值。
var arr = [10, 11, 12,13, 14]; var result = arr.reduce(function(prev, next){ return prev + next; }) console.log( result); // 60
every()
描述:按順序讓數組中每一項依次執行某種相同的操作,用來檢測數組中每一項是否都符合條件。
var arr = [10, 11, 12,13, 14]; var result = arr.every(function(item, index){ return item % 2 == 0; }) console.log( result); // false
說明:檢測的元素中,如果全部都滿足條件,返回 true ,只要有一項不滿足條件,則返回 false 。即 一假必假。
some()
描述:按順序讓數組中每一項依次執行某種相同的操作,用來檢測數組中某一項是否都符合條件。
var arr = [10, 11, 12,13, 14]; var result = arr.some(function(item, index){ return item % 2 == 0; }) console.log( result); // true
說明:檢測的元素中,只要有一項符合條件,就返回結果 true ,如果全部都不滿足條件,則返回結 果 false 。即一真必真。
JavaScript數組的循環和叠代