一.数组的操作方法
1.reverse(): 对原数组进行反转
var a1=[23,12,56,34]
a1.reverse() --- [34,56,12,34]
2.join: 指定分隔符,将数组转换为字符串,生成新的字符串
var a1="he,ll,oo,mm"
字符串转数组
var a2 = a1.split(",")
数组转字符串
a2.join("") helloomm
a2.join("3") he3ll3oo3mm
3.concat: 连接数组,将数据添加到数组的末尾
不修改原数组,生成新的数组
只能打开一维数组,不会打开数组中包含的数组
a1=[1,2,3]
a2=[4,5,6]
console.log(a1.concat(a2)); // [1,2,3,4,5,6]
console.log(a1.concat(55,66)); // [1,2,3,55,66]
console.log(a1.concat([33,88],[44,77])); // [1,2,3,33,88,44,77]
console.log(a1.concat([[11,22]],[33,44],"abc"));// [1,2,3,[11,22],33,44,"abc"]
4.slice 截取子数组
(1)不修改原数组,生成新的数组
(2)a1.slice(2,4) 起始包含,终止不包含
(3)a1.slice(2) 起始到末尾
(4)a1.slice(-4,-2) 负数,从右到左从-1开始截取
a1=[1,2,3,4,5,6,7]
console.log(a1) // [12,34,45,67,89]
console.log(a1.slice(2,4)) // [45,67]
console.log(a1.slice(2)) // [45,67,89]
console.log(a1.slice(2,10)) // [45,67,89]
console.log(a1.slice(-4,-2)) // [34,45]
5.splice: 增加和删除数组元素 -- (修改原数组,返回被删除的元素)
splice(arg1,arg2,arg3...)
arg1 -- 起始位置
arg2 -- 被删除的元素个数
arg3及后面所有参数 -- 指要插入的元素
a1=[1,2,3,4,5,6,7]
a1.splice(1,2,3,4,5)
a1.splice(2) 如只有一个参数,从起始位置删除后面所有的元素
a1.splice(2,2)
a1.splice(2,0)
a1.splice(2,0,0,0,0)
a1.splice(6,2,3,4)
a1.splice(-2,-3,6,7,8) 如果第一个参数为负数,则从右到左查找
如果第二个参数为负数,按0处理
6.数组删除
(1)splice
(2)delele: 仅删除元素本身,不删除元素的空间,不改变数组大小
var a1 = [3,4,5]
delete a1[0] 空格,4,5
二.字符串拼接操作效率
var s1="hello"
var sums1=""
var arr1=[]
var begintime=new Date().getMilliseconds()
// for(var i=0;i<1000000;i++){
// sums1=sums1+s1
// }
// for(var i=0;i<1000000;i++){
// sums1.concat(s1)
// }
for(i=0;i<1000000;i++){
arr1.push(s1)
}
arr1.join("")
var endtime=new Date().getMilliseconds()
console.log(endtime-begintime)
三.数组检测
var a1 = [2,3,4]
typeof(a1) object
1.Array.isArray(a1) true
2.if(a1 instanceof Array){} true
3.a1.constructor==Array true
四.数组的toString()
所有对象都有toString() valueof() toLocalstring()
toString():返回数组中每个值的字符串形式,以逗号分隔进行拼接
数组转字符串
var a1 = [3,4,5]
console.log(a1.toString()) //3,4,5
扩展:
p1={"name":"zs"}
console.log(p1.toString())
五.数组下标
1.a1[0] 0--下标
2.范围 大于0,小于(2^32)-1 整数
3.如果下标是负数,浮点数,布尔型等,js会自动将其转换为字符串
var a1=[4,5,6,7]
console.log(a1[true]); //undefined
console.log(a1[-2]); //undefined
console.log(a1[2.3]); //undefined
4.下标是可以不断递增的表达式
var a1 = []
for(var i=0;i<10;i++){
a1[i++]=i
}
console.log(a1) //[1,空,3,空,5,空,7,空,9]
六.排序
数组.sort(比较函数)
比较函数--具有两个参数 f1(a,b)
函数只判断返回值
返回值大于0 a排在b的后面
返回值小于0 a排在b的前面
返回值等于0 a,b不动
1.var a1=[23,4,5,12,78,16]
console.log(a1.sort()); //[12, 16, 23, 4, 5, 78]
2.var a1=[23,4,5,12,78,16]
function f1(a,b){
// return a-b // a在b的后面
if(a-b<0){
return 1 //a在b后面
}else if(a-b>0){
return -1 //a在b前面
}else{
return 0 //a,b不动
}
}
console.log(a1.sort(f1)) //[4, 5, 12, 16, 23, 78]