1.高阶函数——可自定义函数
- sort();
Array的sort()方法默认把所有元素先转换为String再排序,返回的结果仍是当前Array。
升序 对字符串排序,是按照ASCII的大小比较的
function compare(x, y) {
if (x < y) {
return -1;
}
if (x > y) {
return 1;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.sort(compare);
- map();
要把这个函数作用在一个数组上,就可以用map实现
function pow(x) {
return x * x;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81];
//arr.map(function(x){ return x*x; });
map()把字符串变成整数
var arr = ['1', '2', '3'];
var r;
r = arr.map(function(x){
return parseInt(x,10);
}); //r = arr.map(Number);
alert('[' + r[0] + ', ' + r[1] + ', ' + r[2] + ']');
当r=arr.map(parseInt); //输出[1,NaN,NaN];
原因 map的参数为(ele,index,Arr);
parseInt('1', 0); // 1, 按十进制转换
parseInt('2', 1); // NaN, 没有一进制
parseInt('3', 2); // NaN, 按二进制转换不允许出现3
- reduce();
这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25
- filter();
过滤素数
function get_primes(arr) {
return arr.filter(function(x){
for(var i=2;i1;
});
}
2.indexOf (ele); //获取数组中元素的索引
3.slice(0,3); //获取[0,2)引索的值,返回新数组(获取数组中部分元素)
4.push();(后进)和pop();(后出)
5.unshift();(前进)和shift();(前出)
6.reverse();(反转)
7.concat();方法可以接收任意个元素和Array,并且自动把Array拆开,然后全部添加到新的Array里
8.splice(startIndex,delCount,insteadOf); //添加、删除、替换(返回删除的元素)
9.join(); (把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串)
数组与字符串的相互转换
- split分隔字符串(字符串转化为数组)从该参数(',')指定的地方分割
arr="Hello!,Hello!,Hello!";
arr.split(","); //输出['Hello!','Hello!','Hello!']——————Hello!,Hello!,Hello!
//返回的字符串数组,不包括","
- join分隔数组(数组转化为字符串)
var arr=['H','e','l','l','o','!'];
alert(arr.join('')); //输出'Hello!'——————Hello