数组的基础
创建数组
方式一:直接量方式
var arr=[值1,...];
方式二:构造函数方式
var arr=new Array(值1,...)
注意:arr=new Array(number)创建的是一个长度为number的空数组,里面没有任何东西,只有无数的undefined
按值传递
var a=x,b=a;
---若传递的是原始类型则互不影响
---若传递的是引用类型,则其中一个改变,另一个也跟着变化(浅拷贝)
释放引用类型
要将引用该数据的每个变量都释放才能将该引用类型释放干净
hash(关联)数组
特点: 下标可以自定义
创建hash数组
var arr=[];
arr["自定义下标"]=值
访问
arr["自定义下标"]
特殊
hash数组的length会失效,永远为0
遍历hash数组for in
for(var i in 数组名){
}
数组的API
数组转字符串
var str=arr.join("自定义连接符")
用途
//无缝拼接
arr.join("");
//将数组拼接为DOM页面元素---->渲染页面
elem.HTML="<开始标签>"+arr.join("<结束标签><开始标签>")+"<结束标签>"
数组的拼接
var newArr=arr.concat(新值1,arr,...);
特点:
- 不修改原数组,只会返回一个新数组
- concat支持传入数组参数,会将传入的数组打散为单个元素再拼接
截取子数组
var newArr=arr.slice(start,end);
特点
- 含头不含尾
- start和end不写则完整复制一份,也称此操作为深拷贝
- 支持负数参数
删插替
删除
arr.splice(start,n);
//有返回值,返回值是由被删除元素组成的新数组
插入
arr.splice(start,0,新值1,...);
替换
arr.splice(start,n,新值1,...)
//删除的个数不用跟插入的个数相同
翻转数组
arr.reverse()