文章目录
- 1. 数组
- 2. 数组的操作
-
-
- 2.1 创建数组
- 2.2 向数组中添加元素
- 2.3 创建数组时直接添加元素
- 2.4 获取和修改数组的长度
- 2.5 修改数组的长度
- 3. 数组的方法
-
-
- 3.1 slice(sart,[end])
- 3.2 splice()
- 3.3 join([splitor])
- 3.4 sort()
- 4. 遍历数组
-
-
- 4.1 一般情况我们都是使用for循环来遍历数组
- 4.2 使用forEach()方法来遍历数组(不兼容IE8)
1. 数组
- 数组也是一个对象,是一个用来存储数据的对象和Object类似,但是它的存储效率比普通对象要高
- 数组中保存的内容我们称为元素
- 数组使用索引(index)来操作元素
- 索引指由0开始的整数
2. 数组的操作
2.1 创建数组
var arr = new Array();
var arr = [];
2.2 向数组中添加元素
数组对象[索引] = 值;
arr[0] = 123;
arr[1] = \"hello\";
2.3 创建数组时直接添加元素
var arr = [元素1,元素2....元素N];
var arr = [123,\"hello\",true,null];
2.4 获取和修改数组的长度
- 使用length属性来操作数组的长度
- 获取长度: 数组.length
- length获取到的是数组的最大索引+1
- 对于连续的数组,length获取到的就是数组中元素的个数
2.5 修改数组的长度
- 数组.length = 新长度
- 如果修改后的length大于原长度,则多出的部分会空出来
- 如果修改后的length小于原长度,则原数组中多出的元素会被删除
- 向数组的最后添加元素
- 数组[数组.length] = 值;
3. 数组的方法
方法 |
作用 |
push() |
用来向数组的末尾添加一个或多个元素,并返回数组新的长度 |
pop() |
用来删除数组的最后一个元素,并返回被删除的元素 |
unshift() |
向数组的开头添加一个或多个元素,并返回数组的新的长度 |
shift() |
删除数组的开头的一个元素,并返回被删除的元素 |
reverse() |
可以用来反转一个数组,它会对原数组产生影响 |
concat() |
可以连接两个或多个数组,它不会影响原数组,而是新数组作为返回值返回 |
3.1 slice(sart,[end])
- 可以从一个数组中截取指定的元素
- 该方法不会影响原数组,而是将截取到的内容封装为一个新的数组并返回
- 参数:
1.截取开始位置的索引(包括开始位置)
2.截取结束位置的索引(不包括结束位置)
第二个参数可以省略不写,如果不写则一直截取到最后
参数可以传递一个负值,如果是负值,则从后往前数
3.2 splice()
- 可以用来删除数组中指定元素,并使用新的元素替换
- 该方法会将删除的元素封装到新数组中返回
参数:
- 删除开始位置的索引
- 删除的个数
- 三个以后,都是替换的元素,这些元素将会插入到开始位置索引的前边
3.3 join([splitor])
- 可以将一个数组转换为一个字符串
- 参数:
- 需要一个字符串作为参数,这个字符串将会作为连接符来连接数组中的元素
- 如果不指定连接符则默认使用,
3.4 sort()
- 可以对一个数组中的内容进行排序,默认是按照Unicode编码进行排序
- 调用以后,会直接修改原数组。
- 可以自己指定排序的规则,需要一个回调函数作为参数:
- 我们可以自己来指定排序的规则
- 我们可以在sort()添加一个回调函数,来指定排序规则,
- 回调函数中需要定义两个形参,
- 浏览器将会分别使用数组中的元素作为实参去调用回调函数
- 使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边
- 浏览器会根据回调函数的返回值来决定元素的顺序,
- 如果返回一个大于0的值,则元素会交换位置
- 如果返回一个小于0的值,则元素位置不变
- 如果返回一个0,则认为两个元素相等,也不交换位置
- 如果需要升序排列,则返回 a-b
- 如果需要降序排列,则返回b-a
function(a,b){
//升序排列
//return a-b;
//降序排列
return b-a;
}
4. 遍历数组
4.1 一般情况我们都是使用for循环来遍历数组
for(var i=0 ; i<数组.length ; i++){
//数组[i]
}
4.2 使用forEach()方法来遍历数组(不兼容IE8)
数组.forEach(function(value , index , obj){
});
- forEach()方法需要一个回调函数作为参数,
- 数组中有几个元素,回调函数就会被调用几次,
- 每次调用时,都会将遍历到的信息以实参的形式传递进来,
- 我们可以定义形参来获取这些信息。
- value:正在遍历的元素
- index:正在遍历元素的索引
- obj:被遍历对象