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

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

2018-01-12 14:55 806 查看
原址

//数组操作之迭代器方法(这些方法可以对数组中的每一个元素运用某个方法)

//一、不生成新数组的迭代器方法

//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) {
i

f(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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐