JavaScript 之迭代方法


前言:關於 JS 中為數組定義的迭代方法,我最開始是在《JavaScript高級程序設計》中學習的,然后。。。我並沒有看懂,后來翻閱各個大佬的博客,稍微理解了那么一丟丟。以下就是我的一點見解。

 

首先,我們需要知道數組中的迭代方法都有哪些,列舉出來分別是:every、some、filter、map、forEach、reduce。

其中 every、some、filter、map、forEach 五種方法在傳入時函數會接受三種參數,分別是 item(數組中項的值)、index(項的索引)、array(數組自身)。我在下面的案例中都只傳入了兩個值,原因是。。。用不到(其實是懶得寫) 

而 reduce 方法則會接受四個參數,分別是 prev(前一個項)、cur(當前項)、index(項的索引)、array(數組對象),函數中返回的任何值都會作為第一個參數傳給下一項,函數的迭代是在數組的第二項開始的。

 

1.every ------- 查詢數組中的每一項是否滿足條件

var num = [1,2,3,4,5]; var number = num.every(function(item,index){ return (item > 3);   //判斷傳入的值是否全部都大於3
}) console.log(number); //false 有一個不滿足即為false

2.some ------- 查詢數組中的每一項哪些滿足條件

var num = [1,2,3,4,5]; var number = num.some(function(item,index){ return (item > 3);   //判斷傳入的值哪些項大於3
}) console.log(number); //true 滿足一個即可為true

3.filter ------ 篩選符合條件的項,組成新數組

var num = [1,2,3,4,5]; var number = num.filter(function(item,index){ return (item > 3);   //判斷傳入的值哪些項大於3
}) console.log(number); //[4,5]

 4.map ------ 數組中的項通過計算,組成新數組

var num = [1,2,3,4,5]; var number = num.map(function(item,index){ return item * 3;   //傳入的數值都乘以3
}) console.log(number); //[3,6,9,12,15]

5.forEach ------ 傳入數組中的每一項

var num = [1,2,3,4,5]; var number = num.forEach(function(item,index){ console.log(item); // 1 2 3 4 5
})

    關於 forEach 我再多叨叨幾句,這個方法在本質上與 for 循環沒有什么區別。上面提到過,每個方法都會傳入三個參數,那么我在輸出時傳入第一項,也就是輸出數組中的每一項。如果傳入第二項,則是循環迭代數組的 index 下標值,如果傳入第三項,則是循環迭代整個 num 數組。

6.reduce ------ 數組的前項和后項進行累計值計算

var num = [1,2,3,4,5]; var number = num.reduce(function(prev,cur,index){ return prev + cur; }) console.log(number); // 1+2+3+4+5 = 15 本質上就是數組中的項 累計運算的過程

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM