高阶函数
- map 不会改变原数组
var arr = [2,3,4,5];// 将所有的值加6;
var newArr = arr.map(function(val){
return val + 6;
})
console.log(newArr); //[8, 9, 10, 11]
map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x2,还可以计算任意复杂的函数,比如,把Array的所有数字转为字符串:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
- reduce 不会改变原数组
var arr = [3,4,2,9,4]; // 所有值累加
var newArr1 = arr.reduce(function(previousVal, currentVal) {
// body...
return previousVal + currentVal;
})
console.log(newArr1);// 22
var newArr2 = arr.reduce(function(previousVal, currentVal){
return previousVal * 10 + currentVal; // 34249
})
- filter 过滤 不会改变原数组
var arr = [3,4,2,9,4]; // 找到3以上的数
var newArr = arr.filter(function(val){
return val>3;
})
console.log(newArr);// [4, 9, 4]
- sort 排序 会改变原数组
var arr = [3,4,6,2,9];
arr.sort(function(x, y) {
// body...
return x - y;
})
- reverse 翻转排序
- concat 连接两个数组
- split 字符串分割为数组
网友评论