平时习惯用for循环去遍历数组,也懒的去记这些迭代方法,但是面试的时候被问到了,只知道是迭代方法,却记不清它们的返回值,还是用的少啊,现在就把它们做个总结吧!顺便敲一敲。
数组的迭代方法:
ES5中为数组定义了五种迭代方法:
传入方法中的函数会接受三个参数:1.数组项的值 2. 该项在数组的中位值 3. 数组对象本身;
一.filter():对数组的每一项运行给定的函数。返回该函数会返回true的项组成的数组。
var ary=[1,2,3,4,5,6,7,8];
var result=ary.filter(function(item){
return item>3;
});
二.forEach:对数组中每一项运行给定函数,没有返回值
var ary=[1,2,3,4,5,6,7,8];
var a=ary.forEach(function(item){
console.log(item*3);
});
Chrome 测试结果:
三.map():对数组中的每一项给定函数,返回每一项调用这个函数的结果;
var ary=[1,2,3,4,5,6,7,8];
var a=ary.map(function(item){
return item*2;
});
console.log(a);
四.every():对数组中的每一项运行给定函数,如果每一项都返回true,则返回true,否则false;
some():对数组中的每一项运行给定函数,如果至少有一项返回true,则返回true,否则false;
var ary=[1,2,3,4,5,6,7,8];
//every:
var a=ary.every(function(item){
return item>2;
});
console.log(a); //false
//some():
var ary=[1,2,3,4,5,6,7,8];
var a=ary.some(function(item){
return item>2;
});
console.log(a);//true