数组API汇总
数组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);