数组
-
数组也是一个对象
-
用来存储一些值
-
不同的是,普通对象是使用字符串作为属性名
-
数组是使用数字来作为索引来操作元素
-
索引
-
从0开始的一个整数
-
数组的存储性能比普通对象要好,在开发中经常使用数组来存储一些数据
-
-
数组中的元素可以是任意数据类型,也可以是对象,甚至是函数,数组
-
-
创建数组对象
-
方法1:使用构造函数创建数组对象
-
语法: 数组[索引] = 值
-
var arr = new Array(); arr[0] = 10; arr[1] = 33; arr[2] = 22; console.log(arr[1]); console.log(arr); console.log(arr.length); //获取数组长度(连续的数组)
-
如果读取不存在的索引 ,返回Undefined
-
-
方法2:使用字面量来创建一个数组
-
语法: []
-
var arr = [1,2,3,4,5,6]; console.log(arr);
-
-
基本方法
-
push()
-
向数组的末尾添加一个或者多个元素
-
要添加的元素作为方法的参数传递
-
这样这些元素将会自动添加到数组的末尾
-
返回数组的新的长度
-
-
pop()
-
删除数组的最后的一个元素
-
返回被删除的元素
-
-
unshift()
-
向数组开头添加一个或者多个元素
-
返回数组新的长度
-
-
shift()
-
删除数组第一个元素
-
返回被删除的元素
-
-
slice()
-
可以用来从数组中提取指定元素
-
语法: Array.slice(start, stop)
-
包含start,并不包含stop索引
-
该方法不会改变原数组,将截取后的元素封装到一个新数组进行返回
-
若stop不写,则表示从某一个索引位置往后的所有元素全部都要
-
索引可以传递一个负值
-
var arr = ["swk", "zbj", "shs", "zzj", "bbj"] res = arr.slice(1,2) //提取arr数组中第二个元素 console.log(res)
-
-
splice()
-
删除数组中的指定元素
-
语法: Array.splice(start, count,[新元素1],[新元素2...])
-
解释:从start index位置开始,删除count个
-
向数组添加新元素
-
会影响原数组,会将指定元素从原数组中删除并返回被删除的元素
-
var arr = ["swk", "zbj", "shs", "zzj", "bbj"] res = arr.splice(1,1) // 从索引=1这个位置起,包含索引=1这个位置的元素,往后删除1个元素 console.log(res) //["zbj"] console.log(arr) //["swk", "shs", "zzj", "bbj"]
-
-
concat()
-
连接两个或者多个数组,并将新的数组返回
-
不影响原数组
-
-
join()
-
该方法可以将数组转换为字符串,并作为结果返回
-
不影响原数组
-
在join()可以指定一个字符串作为参数,这个字符串可以成为数组中的元素连接符
-
不指定的话,默认是使用逗号连接
-
-
reverse()
-
翻转数组中元素顺序,并返回新的数组
-
该方法会修改原数组
-
-
sort()
-
用来对数组的元素排序
-
该方法会修改原数组
-
默认按照Unicode编码顺序进行排序
-
纯数字也是按照Unicode编码进行排序,数字排序后不会得到正确的顺序
-
可以指定排序的规则
-
可以在sort()添加一个回调函数,来指定排序的规则
-
回调函数中需要定义两个形参
-
浏览器将会分别使用数组中的元素作为实参去调用回调函数
-
升序排列 return a-b
-
降序排列 return b-a
-
-
遍历
-
for循环遍历
-
var arr = ["swk", "zbj", "shs"] for(var i=0;i<arr.length;i++){ console.log(arr[i]); }
-
-
forEach遍历
-
js中还提供了 forEach()方法来遍历数组(一般都是使用for循环去遍历数组)
-
这个方法只支持IE8(不包括IE8)以上的浏览器
-
forEach()方法需要一个函数作为参数
-
像这种函数,由我们创建,但却不是由我们来调用,所以称之为回调函数
-
-
数组中有几个元素,函数就会执行几次,浏览器将遍历到的元素,以实参形式传递进来
-
浏览器会在回调函数中传递三个实参
-
第一个参数,就是当前正在遍历的元素
-
第二个参数,就是当前遍历数组的索引
-
第三个参数,就是当前正在遍历的数组
-
-
var arr = ["swk", "zbj", "shs", "zzj", "bbj"]; arr.forEach(function(value,index,arr){ // console.log(value); // console.log(index); console.log(arr); });
-
-