您的位置:首页 > Web前端 > JavaScript

js数组的迭代器方法(some、every、forEach、map、filter)

2017-08-04 18:05 866 查看
//数组操作之迭代器方法(这些方法可以对数组中的每一个元素运用某个方法)
//一、不生成新数组的迭代器方法
//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);  //可改变的价值在这里,即firstAlphas这个是数组改变后的新数组

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);


转载:http://blog.csdn.net/github_31392345/article/details/48631337
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐