- map方法
- 作用
可以方便的迭代数组,map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。
这个方法不会改变原始数组。 - 参数
map()只有一个参数,参数是一个回调函数,回调函数中可以有多个参数,
分别是val值,index索引,arr数组;(顺序很重要);
好比调用parseInt方法
var arr=['1','4','9','16'];
r = arr.map(parseInt); //[1, NaN, NaN, 1] 参数传递错误;
n = arr.map(function (x) {return parseInt(x) } //[1, 4, 9, 16];
parseInt本身可以传递两个参数(值,进制),然后map的回调函数第二个参数是索引
导致
parseInt('1',1) = 0;
map方法的参数传递很重要
-
和forEach的区别
map 调用回调并返回一个新数组
for Each 仅仅只是调用回调函数
- reduce方法
配合回调函数,回调函数有两个参数
(pre,cur)第一个参数是上一次回调函数返回的值,
cur是数组的调用的值
第一个参数在第一次计算默认是数组第一个;
也可以通过设置reduce参数的第二个参数设置;
var total = arr.reduce(function(pre,cur){
return pre + cur ;
},0) //完成数组值得累加;
- filter()方法
回调函数可传参数有val(值)、index(索引)、arr(数组)
通过判断回调函数返回值是true就保存,false就过滤
var arr2 = arr.filter(function(val){
return val > 5 ;
})
只保留大于5的值;不改变原有数组
- sort()
回调函数有两个参数,pre,cur上一个的值和当前值
回到函数返回大于0则pre排在cur后
var arr2 = arr.sort(function(a,b){
return a-b;
})
返回一个从小到大的数组排列
- reverse()
翻转数组
var arr = [1,2,3];
var arr2 = arr.reverse(); //[3,2,1]
- contat()
组合数组
var arr = [1,2,3];
var arr2 = arr.concat([4,5,6]); //[1,2,3,4,5,6]
- spilt() 和 join()
- spilt()
字符串方法,但是可以将字符串转化成数组
依据参数来分割字符串成数组
参数可以是正则
arr = string.split(' ');
- join()
数组方法,但是可以将数组转化成字符串
依据参数来连接数组
string = arr.join(' ');