一.数组的创建
1.利用new关键字创建一个空数组:
(1)语法:var 数组名 = new Array();
(2)例如:var array = new Array();
2.利用数组字面量创建数组:
(1)创建一个空数组:var 数组名 = [];
(2)创建一个带初值的数组:var 数组名 = [值1,值2,值3];
二.访问数组元素
1.使用索引:
(1)数组的索引从0开始
(2)格式:数组名[索引]
(3)利用索引可以修改,访问和设置数组元素
2.读取不存在的索引会返回undefined
三.数组的遍历
1.利用for循环取出数组元素:
var arr = [1,2,3,4,5,6,7,8]
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
2.注意数组索引从0开始
3.数组的长度:数组名.length
四.数组元素的新增
1.通过修改length长度:可以通过length来达到扩容数组
2.索引号增加数组元素:arr[未存在的索引] = 值
3.若该索引原来存在元素,又赋值就会替换原来的元素
4.不要直接给数组名赋值
五.冒泡排序
1.思想:先去一个数,依次跟剩余的比较,大于则交换位置,小于则继续向后比较(实现从大到小或从小到大排序)
2.代码实现:
<script>
var arr = [50,44,60,80,1,65,9,51];
for (var i = 0;i<=arr.length-1;i++){
for (var j = 0;j<=arr.length-1-i;j++){
if (arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
</script>
六.数组的常用方法
1.push():向数组末尾添加一个或多个元素,返回新的长度
2.pop():将数组的最后一个元素删除,并返回被删除的元素值
3.unshift():向数组开头添加一个或多个元素,返回新的长度
4.shift():将数组的第一个元素删除,并返回被删除的元素值
5.slice():从数组中提取指定元素,需指定开始和结束的索引(左闭右开区间)
(1)该方法不影响原数组,而是将截取出来的元素放入新数组
(2)可省略第二个参数,表示截取到最后
(3)反向索引从右向左,从-1开始
var arr = ['孙悟空','猪八戒','沙和尚','唐僧'];
arr.slice(0,2);//截取'孙悟空','猪八戒',包括0,不包括2
6.splice():删除元素,并向数组中添加新元素
(1)会影响原数组,返回删除的元素
(2)有两个参数,第一个为索引,第二个为删除的数量,后边再加参数就是要添加的参数,这些元素会自动插入开始位置索引前
7.forEach:遍历数组
(1)需要一个匿名函数做参数
- 这种函数由我们创建,但是不由我们调用,称为回调函数
(2)数组中有几个元素就会执行几次函数
(3)可以有三个参数:
- value:数组的值
- index:数组索引
- object:数组对象
var arr = ['孙悟空','猪八戒','沙和尚','唐僧']; arr.forEach(function(value,index){ console.log(index +" " + value); })
8.concat():连接两个或多个数组,并将新的数组返回
(1)该方法不会对原数组产生影响,要将其赋值给新数组
(2)使用:arr1.concat(arr2,arr3……)
(3)也可以传入元素,也会一起拼接9.join():将数组转换为字符串,并插入分隔符
(1)该方法不会对原数组产生影响,要将其赋值给新数组
(2)arr.join(“|”) — 表示转换的字符串用 | 连接,不指定默认用逗号10.reverse():反转数组
(1)会改变原数组11.sort():对数组元素进行排序
(1)会改变原数组
(2)按照Unicode编码表排序
(3)可以通过在括号内加回调函数实现其他排序方式七.案例:数组去重
var arr = [1,2,3,2,1,3,4,2,5]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length-1;j++){ if(arr[i]==arr[j]){ arr.splice(j,1); j--;//防止连续出现两个一样的数 } } } console.log(arr);