JavaScript学习笔记: 数组迭代方法
使用数组总是会碰到数组的遍历(迭代)操作。说到迭代,可能会立马想起for
语句对数组进行迭代
1.其实ES5为数组定义了五个迭代方法
forEach()
:没有返回值,只是针对每个数组项调用指定的函数(callbackfn
)every()
: 返回一个布尔值(true
或false
),判断每个数组项是否符合指定函数的条件,符合为true
,反之为false
some()
: 返回一个布尔值(true
或false),判断每个数组项是否符合指定函数的条件,只要有任何一项返回为true
,就会返回true
filter()
: 每个数组项调用指定的函数,条件为true
的将返到一个新数组中map()
: 每个数组项调用指定的函数,返回每次函数调用的结果组成一个新数组
这五个数组迭代的方法中,其中forEach()
、every()
和some()
方法不生成一个新数组,而filter()
和map()
方法将会生成一个新数组(符合条件)。并且这些方法都会调用指定的函数callbackfn
。回调函数callbackfn
语法如下
1.forEach() 让数组的每一项都执行一次给定的函数
array.forEach(callback[,thisArg])
array 必选。一个数组对象。比如示例中的
peoples
数组
callback 必选。最多可以接受三个参数的函数。对于数组中的每个元素,forEach
都会调用 callbackfn
函数一次。
thisArg 可选。 callbackfn
函数中的 this
关键字可引用的对象。如果省略 thisArg
,则 undefined
将用作 this
值。
forEach()
方法按升序为数组中含有效值的每一项执行一次callbackfn
函数,那些已删除或者从未赋值的项将被跳过(但不包括哪些值为 undefined
的项)。
2. every() 方法 测试数组的所有元素是否都符合指定函数的条件,只要有有一个元素不符合,返回的都会是false
array.every(callback[,thisArg])
every()方法为数组中的每个元素执行一次 callbackfn函数 直到它找到一个使callbackfn返回false(表示可转换布尔值false值)的元素 如果发现了一个这样 的元素 every()方法将会立即返回 false
。否则,callbackfn
为每一个元素返回 true
,every()
就会返回 true
。callbackfn
只会为那些已经被赋值的索引调 用。不会为那些被删除或从来没被赋值的索引调用。
3. map() 方法
map() 方法返回一个由原来数组中的每个元素调用 一个指定函数 callbackfn后的返回值组成的新数组 如果符合callbackfn会返回条件的一个值。将所有返回的值再创建一个新的数组。
4.filter()