创建数组
数组是弱类型的,创建数组有以下几种方法
- 使用中括号直接创建数组var arr1 = []
- 使用构造器Array(),内部参数只有一个数值时,比如Array(100)表示数组有一百个空元素,如果有多个参数,那参数就变成传入数组的元素
数组元素的读写
数组的增删
- arr.push()通过堆栈的方式推入一个元素
- arr.unshift()给数组头部的添加元素
- 通过delete删除的元素,仍然占据一个位置,只是值变成了undefined
- 可以通过arr.length-1删除数组最后一个元素
- arr.pop()删除数组尾部元素,arr.shift()删除头部元素,这两个操作都是彻底删除,会使arr.length长度改变
数组的迭代
- 简单的for循环
for(var i = 0;i<arr.length;i++){console.log(arr[i])}
- 使用for in的方法,需要注意的,原型链上的Array.prototype上的数据也会加入迭代,所以可以设置数据过滤if(arr.hasOwnProperty(i))
特殊数组
- 二维数组
- 稀疏数组
数组中的方法
- join-把数组转换成字符串,join()内部的参数不设置默认用逗号隔开元素
2. 可以创建一个重复字符的方法function repeatSting(str,n){ return new Array(n+1).join(str); }
- reverse方法,逆序,会对原数组修改
- sort方法,会按照字母大小排列,想要通过比较大小来排列,需要传入一个方法
arr.sort(function(a,b){return a-b;})
- concat方法,不会改变原来的数组,会拉平传入参数的数组,如果传入的参数本身是数组,内部也有数组,那么不会二次拉平
- slice方法,返回部分数组,内部参数左开右闭,右边的参数不包含本身,可以使用负数,表示从尾部开始计数(原数组修改)
- splice方法,第一个参数表示要提取的参数开始点,第二个参数表示要删除的个数,后面可以传入参数,参数添加的位置由splice中第一个参数决定
- forEach方法,遍历数组
var arr = [21,321,43]; arr.forEach(function(x,index,a))//x表示数组的元素,index表示索引,a表示数组本身
数组小结
- 数组与对象的区别
- 数组也是对象,都可以继承
- 数组本身会有length,长度实时更新
- 数组按照索引去访问比对象属性要快