方法名 | 方法的作用 |
---|---|
concat | 连接2个或更多数组,并返回结果 |
every | 对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回true, 否则返回false |
filter | 对数组中的每一项运行给定函数,返回该函数会返回 true的项组成的数组 |
forEach | 对数组中的每一项运行给定函数。这个方法没有返回值 |
join | 将所有的数组元素连接成一个字符串 |
indexOf | 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1 |
lastIndexOf | 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值 |
map | 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组 |
reverse | 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个 |
slice | 传入索引值,将数组里对应索引范围内的元素作为新数组返回 |
some | 对数组中的每一项运行给定函数,如果任一项返回 true,则结果为true, 并且迭代结束 |
sort | 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数 |
toString | 将数组作为字符串返回 |
valueOf | 和 toString类似,将数组作为字符串返回 |
为了方便操作数组,有很多迭代器方法,列子如下:
//some方法,flag为true
var names = ["abc", "cb", "mbay", "dna"];
var flag = names.some(function(a){
return a.indexOf('y')!==-1;
})
alert(flag)
//every方法,flag为flase
var names = ["abc", "cb", "mbay", "dna"];
var flag = names.every(function(t){
return t.indexOf('a')!==-1;
})
alert(flag)
//forEach:遍历数组中的每一个值
names.forEach(function (t) {
alert(t)
})
//map方法:数组中的每一个值后会加一个“-zqy”
var newNames = names.map(function (t) {
return t + "-zqy"
})
//filter方法:将数组中含有字符'a'的值筛选出来
var aName = names.filter(function(t){
return t.indexOf('a')==-1;
})
reduce方法比较复杂,方法中的callback(一个在数组中每一项上调用的函数,接受四个参数:
- previousValue(上一次调用回调函数时的返回值,或者初始值)
- currentValue(当前正在处理的数组元素)
- currentIndex(当前正在处理的数组元素下标)
- array(调用reduce()方法的数组)
除了回调函数外,reduce还接受一个参数:
initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值)
var arr1 = [3,6,8,10];
var total = arr1.reduce(function(pre,cur){
return pre + cur
},7)//其中7是initialValue,这里我们设为7,即total的值为7+3+6+8+10
参考文献:https://www.jianshu.com/p/9521594710d7