数组的创建方式
JS中创建数组有两种方式:
● 利用new创建数组
● 利用数组字面量创建数组
1、利用new创建数组
var 数组名=new Array() ;
var arr = new Array(); // 创建一个新的空数组
●这种方式暂且了解,等学完对象再看
●注意Array , A要大写
2、利用数组字面量创建数组
数组元素的类型
数组中可以存放任意类型的数据,例如 字符串,数字,布尔值 等。
var arrStus = ['小白', 12, true,28.9] ;
(true不需要加引号,字符串才加引号)
数组的索引
索引(下标) :用来访问数组元素的序号(数组下标从0开始)。
var arr = ['小白', "小黑', '大黄', '瑞奇'];
索引号: 0 1 2 3
数组可以通过索引来访问、设置、修改对应的数组元素,我们可以通过“数组名[索引]”的形式来获取数组中的元素。这里的访问就是获取得到的意思
//定义数组
var arrStus = [1,2,3];
//获取数组中的第2个元素 ,arrStus[1]=2;
alert (arrStus[1]) ;
数组的长度
使用“数组名.length" 可以访问数组元素的数量(数组长度)。
//例如
var arr=[1,2,3,4,5,6,7];
//那么, arr.length=7;
//想要在控制台一行输出多个变量,只需加逗号(,)即可
数组中新增元素
可以通过修改length长度以及索引号增加数组元素
1、通过修改length长度新增数组元素
●可以通过修改 length长度来实现数组扩容的目的
●length性是可读写的
var arr = ['red', 'green','blue', 'pink'] ;
arr. length = 7; //将数组大小扩大为7
console. log(arr) ;
console. log(arr[4]) ;
console. log(arr[5]);
console. log(arr[6]);
其索引是4, 5 , 6的空间没有给值,就是声明变量未给值,默认值就是undefined.
2、通过修改数组索引新增数组元素
●可以通过修改数组索引的方式追加数组玩素
●不能直接给数组名赋值 ,否则会覆盖掉以前的数据
var arr = ['red', 'green', 'blue', 'pink'] ;
arr[4] = ' hotpink" ; //直接追加了arr[4],并赋值为 'hotpink'
console. log(arr) ;
这种方式也是我们最常用的一种方式。
遍历数组
使用循环如(for、while、do while)使数组中每一个元素都经过一遍;
例如:
var arr=[1,2,3,4,5,6,7,8,9];
for(var i=0; i < arr.length ;i++){
console.log(arr[i]);
}
简单冒泡排序
var arr=[3,1,4,5,6,7,8,2,3];
var temp;
for(var j=0;j<arr.length-1;j++){
for(var i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]){
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
console.log(arr);
此处冒泡排序是将相邻的元素进行比较,不断选出最大的元素,经过一趟排序后,最大的元素交换到了数组最后面,然后再来一趟,第二大元素到了倒数第二个位子上,依此类推,经过
arr.length-1 趟之后,数组元素从小到大依次排列好了;
冒泡排序的趟数(最外重循环):数组长度减一次,(如果有两个元素,就冒泡一趟)
简单选择排序
var arr=[3,1,4,5,6,7,8,2,3];
var min,temp;
for(var j=0;j<=arr.length-1;j++){
min=j;
for(var i=j+1;i<arr.length;i++)
{
if(arr[i]<arr[min]){
min=i;
}
}
if(min!=j){
temp=arr[j];
arr[j]=arr[min];
arr[min]=temp;
}
}
console.log(arr);
选择排序的精髓:
从数组第一个元素开始选出一个最小(最大)值,然后从剩下的元素中通过循环选择出 最小(最大)值,并交换,然后从数组第二个开始,又从剩下的选择,以此类推,每次都交换好了,总体就保持从小到大(从大到小)的顺序。
数组数据倒置
var arr=[1,2,3,4,5,6,7,8,9];
var left=0,right=arr.length-1;
var temp;
while(left<right){
temp=arr[left];
arr[left]=arr[right];
arr[right]=temp;
left++;
right--;
}
console.log(arr);
数组中删除指定数据
var arr=[1,2,3,4,5,3,6,7,8,9];
var num=arr.length;
for(var i=0;i<arr.length;i++){
if(arr[i]===3){ //删除了数组中为3的元素
for(var j=i+1;j<arr.length;j++){
arr[j-1]=arr[j];
}
num--;
}
}
arr.length=num; //缩短了数组的大小
console.log(arr);