数组API汇总

Javascript数组API:

1、将数组转化为字符串:2种:

1、var str=String(str);   

 将数组转化为字符串并分隔每个元素;  

var arr=[1,2,3];
String(arr)
"1,2,3"
arr//[1, 2, 3]

 注:不改变原数组

2,、var str=arr.join("自定义分隔符"); 
     将数组转化为字符串,可定义分隔符
     强调:如果join省略"",就等效于String

注:不改变原数组

var arr=[1,2,3];
arr.join('')//"123"

var arr=[1,2,3];
arr.join(' ')//"1 2 3"

var arr=[1,2,3];
arr.join(',')//"1,2,3"
arr//[1, 2, 3]

2、链接和获取子数组:
1、连接:   var newArr=arr1.concat(值1,值2,arr2,...);
    将concat后的内容,和arr1拼接,组成新数组返回
    强调:concat的参数中包含数组,则打散数组,以单个元素拼接  

var arr1=[1,2,3],arr2=[4,5,6]
arr1.concat(1,2)//[1, 2, 3, 1, 2]

var arr1=[1,2,3],arr2=[4,5,6]
arr1.concat(arr2)//[1, 2, 3, 4, 5, 6]

2、获取子数组:var subArr=arr.slice(starti,endi+1);
     获得arr中starti位置开始,到endi位置的所有元素组成的新数组
     强调:含头不含尾
     省略第二个参数:表示从starti一直取到结尾
     可支持负数参数:-n表示倒数第n个元素,相当于length-n   

var arr=[1,2,3,4]

arr.slice(0)//[1, 2, 3, 4]

arr.slice(0,2)//[1, 2]

arr.slice(-3)//[2, 3, 4]

arr.slice(-3,-1)//[2, 3]

arr.slice(0,2)//[1, 2]

arr//[1, 2, 3, 4]

注:不改变原数组

3、删除,插入,替换:(直接修改原数组
 1、删除:var deletes=arr.splice(starti,n);
     删除arr中starti位置开始的n个元素
     返回被删除的元素组成的临时新数组

var arr=[1,2,3,4]
arr.splice(0)//[1, 2, 3, 4]

var arr=[1,2,3,4]
arr.splice(-1)//[4]

var arr=[1,2,3,4]
arr.splice(0,3)//[1, 2, 3]
arr//[4]

注:1.支持负数

  2.直接修改原数组


2、插入:arr.splice(starti,0,值1,值2,...);
     在arr中starti位置,插入新值。旧值被向后顺移
     强调:

  1.要插入的值,只能以单独的参数传入,不支持打散数组参数 

  2.starti表示第i个 不是数组索引

  

var arr=[1,2,3,4]
arr.splice(2,0,22,33)
arr//[1, 2, 22, 33, 3, 4]


3、替换:var deletes=arr.splice(starti,n,值1,值2,...);
     删除arr中starti位置开始的n个元素,再在starti位置插入新元素
     删除的元素个数和插入的新元素个数不必相等

 

var arr=[1,2,3,4]
arr.splice(2,2,5,6)
arr//[1, 2, 5, 6]

4、反转数组元素:arr.reverse();

arr=[1,2,3,4]
arr.reverse()//[4, 3, 2, 1]
arr//[4, 3, 2, 1]

注:直接修改原数组

5、升序排列:arr.sort();   (直接修改原数组)

arr=[1,5,3,2]
arr.sort()//[1, 2, 3, 5]

arr=[1,5,32,2]
arr.sort()//[1, 2, 32, 5]
arr//[1, 2, 32, 5]

注:1.将arr中的元素,以字符串方式升序,如上

  2.sort()支持自定义排序方法(arrayObject.sort(sortby)),这个以后再说啦~


6、结尾出入栈:
1、入栈:arr.push(值)
     将值压入数组结尾

var arr=[1,2,3,4]
arr2=arr.push(1)//5
//返回新数组的长度
arr//[1, 2, 3, 4, 1]

2、出栈:var last=arr.pop();
    弹出数组最后一个元素

var arr=[1,2,3,4]
arr.pop()//4
//返回弹出的元素
arr//[1,2,3]

注:直接修改原数组

7、开头出入栈:
1、入栈:arr.unshift(值);
    将值插入数组开头
2、出栈:var first=arr.shift();
    取出数组第一个元素

var arr=[1,2,3,4]
arr.unshift(22)//5
arr//[22, 1, 2, 3, 4]
var arr=[1,2,3,4] arr.shift()//1 arr//[2, 3, 4]

注:直接修改原数组

总结:

直接修改原数组:

1.arr.splice();

2.arr.reverse();

3.arr.sort(); 

4.arr.push(值);arr.pop();

5.arr.unshift(值);arr.shift();

不修改原数组:

1.String(arr);

2.arr.join("自定义分隔符"); 

3.arr1.concat(值1,值2,arr2,...);

4.arr.slice(starti,endi+1); 

posted @ 2017-02-13 15:30  yaokunlun  阅读(10336)  评论(1编辑  收藏  举报