JavaScript中的迭代方法:1、every(),可查詢數(shù)組中的每一個(gè)元素是否都滿足某一條件;2、some(),可查詢數(shù)組中每個(gè)元素是否滿足某些條件;3、filter();4、map();5、forEach();6、reduce()。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
定義:
1、迭代(iterate),指的是按照某種順序逐個(gè)訪問列表中的每一項(xiàng)。比如,for語句。
2、循環(huán)(loop),指的是在滿足條件的情況下,重復(fù)執(zhí)行同一段代碼。比如,while語句。
3、遍歷(traversal),指的是按照一定的規(guī)則訪問樹形結(jié)構(gòu)中的每個(gè)節(jié)點(diǎn),而且每個(gè)節(jié)點(diǎn)都只訪問一次。
4、遞歸(recursion),指的是一個(gè)函數(shù)不斷調(diào)用自身的行為。比如,以編程方式輸出著名的斐波納契數(shù)列。
JavaScript中的迭代方法:
1、every()
用來查詢數(shù)組中的 每一個(gè)是否 都 滿足某一條件
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var number = num.every(function(item,index){ return (item > 5); // 判斷傳入的值是否全部都大于5 }) console.log(number); // false 只要有一個(gè)不滿足就為 false
2、some()
查詢數(shù)組中每項(xiàng)滿足 某些條件
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var number = num.every(function(item,index){ return (item > 5); // 判斷傳入的值哪些項(xiàng)大于5 }) console.log(number); // false 只要有一個(gè)滿足就為true
3、filter()
篩選符合條件的項(xiàng),組成新數(shù)組
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var number = num.filter(function(item,index){ return (item > 5); // 判斷傳入的值哪些項(xiàng)大于5 }) console.log(number); // [6, 7, 8, 9]
4、map()
通過計(jì)算原數(shù)組中的項(xiàng),來組成新的數(shù)組
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var number = num.map(function(item,index){ return item - 1; // 判斷傳入的值哪些項(xiàng)大于5 }) console.log(number); // [0, 1, 2, 3, 4, 5, 6, 7, 8]
5、forEach()
傳入數(shù)組的每一項(xiàng)
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var number = num.forEach(function(item,index){ console.log(item); // [1, 2, 3, 4, 5, 6, 7, 8, 9] })
6、reduce()
數(shù)組的前項(xiàng)和后項(xiàng)進(jìn)行累計(jì)值計(jì)算
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var number = num.reduce(function(prev,cur,index){ return prev + cur; }) console.log(number); // 1+2+3...+9 = 45 本質(zhì)上就是數(shù)組中的項(xiàng) 累計(jì)運(yùn)算的過程
注意
forEach 這個(gè)迭代方法在本質(zhì)上和 for 循環(huán)沒有什么區(qū)別,但是在使用該方法的時(shí)候會(huì)傳入三個(gè)參數(shù),在輸出時(shí)候傳入第一項(xiàng),也就是輸出數(shù)組中的每一項(xiàng),如果傳入第二項(xiàng),那么會(huì)循環(huán)迭代數(shù)組的 index 的下標(biāo)值,如果傳入的是第三項(xiàng),那么是循環(huán)迭代整個(gè) num 數(shù)組。
【推薦學(xué)習(xí):javascript高級(jí)教程】