Array方法

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

你可能感兴趣的:(Array方法)