JavaScript(三)Array的高阶函数
-
map:
map()
方法定义在JavaScript的Array
function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] console.log(results);
// 对一个array求和 var arr = [1, 3, 5, 7, 9]; arr.reduce(function (x, y) { return x + y; }); // 25
filter用于把Array
的某些元素过滤掉,然后返回剩下的元素。
filter()
把传入的函数依次作用于每个元素,然后根据返回值是true
还是false
JavaScript的Array
的sort()
方法就是用于排序的,sort()
方法也是一个高阶函数,它可以接收一个比较函数来实现自定义的排序。
通常规定,对于两个元素x
和y
,如果认为x < y
,则返回-1
,如果认为x == y
,则返回0
,如果认为x > y
,则返回1
var arr = [10, 20, 1, 2]; arr.sort(function (x, y) { if (x < y) { return -1; } if (x > y) { return 1; } return 0; }); console.log(arr); // [1, 2, 10, 20]
-
every()
方法可以判断数组的所有元素是否满足测试条件。 -
find()
方法用于查找符合条件的第一个元素,如果找到了,返回这个元素,否则,返回undefined
-
findIndex()
和find()
类似,也是查找符合条件的第一个元素,不同之处在于findIndex()
会返回这个元素的索引,如果没有找到,返回-1
: -
forEach()
和map()
类似,它也把每个元素依次作用于传入的函数,但不会返回新的数组。forEach()