js數組的叠代器方法(some、every、forEach、map、filter)
阿新 • • 發佈:2017-10-02
reac floor all com mat pan scrip links 第一個
數組操作之叠代器方法(這些方法可以對數組中的每一個元素運用某個方法)
一、不生成新數組的叠代器方法
1、forEach方法(接收一個函數作為參數)
function square(num){ alert(num * num) ; } var nums = [1,2,3,4,5]; console.log(nums.forEach(square));
2、every方法(接收一個返回值為布爾值的函數,對數組中的每一個元素使用該函數)
function isEven (num) { return num % 2==0; }var evens=[2,4,6,8,10]; var isAllEven = evens.every(isEven); //當且僅當數組中的所有的元素返回為真,every函數才會返回為真 if(isAllEven){ alert("all is even"); }else{ alert("not all is even"); }
3、some方法(只要數組中有一個元素使用方法返回為真,some函數就會返回真)
var nums = [1,2,3,5,7,9]; function isEven (num) {return num % 2==0; } alert(nums.some(isEven)); //true
4.reduce方法
用法①:為數組中的元素求和
function add (currentTotal,currentValue) { //alert(currentValue); //alert(currentTotal); return currentTotal+currentValue; } var nums = [1,2,3,4,5,6,7]; alert(nums.reduce(add));
用法②:將數組中的元素連接成一個長的字符串
function linkStr (foreStr,currentStr) { return foreStr + currentStr; } var strings = ["nolan","is","studying","javascript"]; alert(strings.reduce(linkStr));
二、生成新數組的叠代器方法
1.map方法(類似於不生成新數組中的forEach方法)
用法①:取數組中每個單詞的第一個字母
function firstAlpha (word) { return word[0].toUpperCase(); } var words = ["nolan","is","studying","javascript"]; var firstAlphas = words.map(firstAlpha); alert(firstAlphas.join("")); //使用join可以去掉連接數組元素的逗號
2.filter方法(類似於every方法)
用法①:篩選出符合條件(即返回值為true)的元素
function isEven (num) { return num % 2==0; } var nums=[1,2,4,6,8,10]; var evens = nums.filter(isEven); alert(evens); //案例:隨機生成一些成績,挑選出大於六十分的成績 function pass (grade) { if(grade>60){ return true; }else{ return false; } } var grades = []; for(var i=0;i<20;i++){ grades[i]=Math.floor(Math.random()*101); } alert(grades); var passedGrades=grades.filter(pass); alert(passedGrades);
js數組的叠代器方法(some、every、forEach、map、filter)