ECMAScript5为数组定义了5个迭代的方法。且每个方法都是要接收两个参数:要在每一项运行的函数,以及运行函数的作用域。并且相对于方法,方法中的函数还需要接受三个参数:
- 数组的项(item)
- 该项在数组中的位置(index)
- 数组对象本身(array)
ES5的五种迭代方法:
- every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
- filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
- forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
- map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
- some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
对于这五种方法中,最相似的莫过于every()、some()了。它们都是用于查询数组中的项是否满足某个指定的条件。在some方法中,只要有其中一个项满足条件,那么它就返回true。every则对应的是,必须每一项都满足条件,它才返回true,否则返回false。
every()方法:
var numbers=[1,2,3,4,5,6,5,4,3,2,1];//设置数组
var everyWay=numbers.every(function(item,index,array){
return (item>2);//判断数组中大于2的项
});
alert(everyWay);//不满足全部大于2ÿ