Javascript数组
-
概念
- 数组特点:方便访问(获取)。
- 数组概念: 一组数据的集合,其中的每个数据被称作 元素,在数组中可以 存放任意类型的元素。(数组: 一种将一组数据存储在单个变量名下的方式。)
一、创建数组
1.利用 new 创建数组
-
语法结构
-
var 数组名 = new Array() ; var arr = new Array(); // 创建一个新的空 数组
- 注意 Array () ,A 要大写
2.利用 数组字面量 创建数组
-
语法结构
-
//使用数组字面量方式创建空的数组 var 数组名 = [ ]; var 数组名 = [1,'xx ',true];
- 1.数组中可以存放任意类型的数据,例如字符串,数字,布尔值等
- 2.数组里的数据一定要用逗号分隔
- 3.数组里面的数据 称为数组元素
- 4.声明数组并赋值称为 数组的初始化
二、获取数组中的元素
数组的索引
-
索引 (下标)
-
用来访问数组元素的序号(数组下标
从 0 开始)。
语法结构 -
var arr = ['xxx','zzz','ccc','sss']; 索引号: 0 1 2 3
-
1.可以通过
数组名[索引]
例:console.log(arr1[2])
的形式来 获取数组中的元素用来访问(获取得到)、设置、修改对应的数组元素;。 - 例:
-
// 定义数组 var arrStus = [1,2,3]; alert(arrStus[0]);//输出结果:1 alert(arrStus[1]);//输出结果:2 alert(arrStus[2]);//输出结果:3 alert(arrStus[3]); //输出结果:undefined
- 注意:如果访问时数组 没有和索引值对应的元素,则得到的值是 undefined
四、 遍历数组
1.数组遍历
-
遍历:
- 把数组中的 每个元素从头到尾都访问一次,可以通过 for 循环索引遍历数组中的每一项 索引号:
- i 当索引号使用 且 索引号是从0开始 举例:
-
var arr = ['red','green', 'blue']; //i=0 索引号是从0开始 i当索引号使用 //arr[i]组元素 第i个数组元素 for(var i = 0; i < 3; i++){ console.log(arr[i]); } //输出结果: //red //green //blue
2.数组的长度
-
数组中元素的个数
-
使用“数组名.length”可以访问数组元素的数量(数组长度)。
语法结构
-
1.确定数组内元素个数
-
var arrStus = [1,2,3]; alert(arrStus.length); // 输出结果:3
-
2.当不确定数组内元素个数时可用此方法遍历数组
-
var arr = ['red','green', 'blue']; for(var i = 0; i < arr.length; i++){ console.log(arr[i]); }
-
注意:
-
数组与数组的索引号区别。(i是索引号,arr[i]是数组元素 第i个数组元素)
-
当数组里面的元素个数发生了变化, length 属性跟着一起变化
-
五、数组中新增元素
-
length属性 (数组的length属性可以被修改:)
-
1.新增数组元素 修改length长度
-
(只修改了length长度) var arr = ['1', '2', '3']; arr.length = 5; // 数组的长度修改为了 5 里面应有5个元素 console.log(arr.length);//输出结果:(5)'1', '2', '3',empty×2 console.log(arr[3]); // 输出结果:undefined console.log(arr[4]); // 输出结果:undefined
-
2.新增数组元素 修改索引号 追加数组元素
-
(修改了length长度且追加了数组元素) var arr1 = ['1', '2', '3']; arr1[3] = '4'; console.log(arr1);//输出结果:(4)'1', '2', '3','4' arr1[4] = '5'; console.log(arr1);//输出结果:(5)'1', '2', '3','4','5'
-
3.替换数组元素
-
var arr1 = ['1', '2', '3']; arr1[0] = '5'; // 输出结果:(3)'5', '2', '3' console.log(arr1); arr1 = '123456'; console.log(arr1); // 输出结果:123456 // 直接给数组名赋值,新赋的值 会替换掉 原来数组里的元素
注意:
-
如果设置的length属性值大于数组的元素个数,则会在数组末尾出现空白元素
(空元素:empy ;empy里默认的是undefined);
例: -
var arr = ['1', '2', '3']; arr.length = 5; console.log(arr.length);//输出结果:(5)'1', '2', '3',empty×2
-
5.如果设置的length属性值小于数组的元素个数,则会把超过该值的数组元素删除
-
6.数组中可以通过以下方式在数组的末尾插入新元素:
-
数组[ 数组.length ] = 新数据;
六、冒泡排序
-
冒泡排序:
- 一次比较两个元素,如果顺序错误就交换两个元素位置 (观察执行过程,找规律转换成代码)
- 例:
-
var arr = [5, 4, 3, 2, 1]; for (var i = 0; i <= arr.length - 1; i++) { //外层循环 5-1=4趟 // -1:交换到最后 元素1和元素2不需要交换 for (var j = 0; j <= arr.length - i - 1; j++) { //内层循环 每趟的交换次数 5-i-1趟 if (arr[j] > arr[j + 1]) { //内部交换两个变量的值 前一个元素和后一个元素比较 var temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } console.log(arr);
特别注意:
索引号与长度(length)无关
var arr1 = ['red', 'green', 'blue', 'pink', 'purple'];
console.log(arr1.length);//输出结果:5
//length:输出为元素总个数
console.log(arr1[0]);//输出结果:'red'
console.log(arr1[1]);//输出结果:'green'
console.log(arr1[2]);//输出结果:'blue'
console.log(arr1[3]);//输出结果:'pink'
console.log(arr1[4]);//输出结果:'purple'
console.log(arr1[5]);//输出结果:undefined(未阐明)
//用arr1[索引号]输出对应元素
for(var i=0;i<=arr1.length;i++){
//var i=索引号;i<=arr1内元素总个数;索引号++
console.log(arr1[i]);
//输出结果:
//red
//green
//blue
//pink
//purple
}