javascrip 对数组的操作方法
1、join():将数组中所有元素都转化成字符串并连接在一起,返回最后生成的字符串;
与split()方法相反,split()是将字符串分割成若干块来创建一个数组;
var a = [1,2,3]; a.join(); //=> 1,2,3 a.join(""); //=> 123 a.join(" "); // => 1 2 3 a.join("-"); //=> 1-2-3
2、reverse():将数组中的元素颠倒顺序,返回逆序的数组;
var a = [1,2,3,6,5]; a.reverse(); //[5,6,3,2,1]
3、sort():将数组中的元素排序并返回排序后的数组,
会改变原数组的值,如果想不改变原数,则需要深度拷贝数组:var b = a.concat([]);
默认是根据字母排序,如果要根据数值排序,需要使用
function(a,b){
return a-b; //使用升序
return b-a; //使用降序
}, ;
var a = [1,2,33,6,5]; a.sort(); //=> [1, 2, 33, 5, 6] a.sort(function (a,b) { //=> sortA: [1, 2, 5, 6, 33] return a-b; }) a.sort(function (a,b) { //=> backSortA: [33, 6, 5, 2, 1] return b-a; })
4、concat():创建并返回一个新数组,如果参数是数组,则连接的是数组的元素,并不是数组本身;concat()并不会改变数组本身,也可用于深拷贝数组;
var b = [1,2,22,33,5]; b.concat(4,5); //=> [1, 2, 22, 33, 5, 4, 5] b.concat([4,5]); //=> [1, 2, 22, 33, 5, 4, 5] b.concat([4,[5,6]]); //=> [1, 2, 22, 33, 5, 4, [5,6]]
对数组b进行排序,但不改变原来的数组:
var b = [1,2,22,33,5]; var sortB = b.concat([]); sortB.sort(function (a,b) { //=> sortB:[1, 2, 5, 22, 33]; b: [1, 2, 22, 33, 5] return a-b; })
5、slice():获取指定的数组元素;包含第一个指定元素的位置,到指定元素的前一个位置,就是[a,b),包含a的位置,不包含b的位置;下标位置从0开始,负数是指倒数第几个;
var c = [0,1,2,3,4,5]; c.slice(0,3); //=> [0, 1, 2] c.slice(3); //=> [3, 4, 5] c.slice(0,-2); //=> [0, 1, 2, 3]
6、splice():删除或插入数组;前两个参数指定了需要删除的数组,紧随其后的任意个数的参数指定了需要插入到数组中的元素,从第一个参数指定的位置开始插入;
splice()方法返回值是数组,并会改变原数组,下标从0开始;
var d = [0,1,2,3,4,5]; var result = d.splice(1,3); //=>从下标为1的数组元素删除3个元素 result: [1, 2, 3]; d: [0, 4, 5]
var d = [0,1,2,3,4,5]; var result = d.splice(3); //=> 删除最后三个数组元素 result: [3,4,5], d: [0,1,2]
var d = [0,1,2,3,4,5]; var result = d.splice(2,2,'a','b'); //=>从第2个位置删除两个元素,并从第2个位置插入两个元素 result: [2, 3], d: [0, 1, "a", "b", 4, 5]
7、push():向数组的尾部添加一个或多个元素;
8、pop():与push()相反,删除数组的最后一个元素;
9、unshift():向数组的头部添加一个或多个元素;
10、shift():删除数组的头部元素;
11、toString():将数组转成字符串,并用带号做分隔符;