JavaScript-数组
一、创建数组
- new
语法:
var 数组名 = new Array();
//创建空数组
※ 注意大写的A
- 利用数组字面量创建数组(常用)
语法:
var 数组名 = [];
利用数组字面量创建数组可以给数组赋初始值(数组初始化),数组中的元素要用逗号分隔。
数组中的元素可以是任意类型,比如数字型,字符型,布尔型等。
二、访问数组元素
- 数组的索引
索引(下标):用来访问数组的序号,数组下标从0开始。
var arr = ['张三', '李四', '王五', '刘六'];
//索引号: 0 1 2 3
例如:
console.log(arr[1]);
将会在控制台输出:李四。
- 遍历数组
通过循环把数组中的元素从头到尾访问一次。
例如:
var arr = ['张三', '李四', '王五', '刘六'];
for (var i = 0; i < 3; i++){
console.log(arr[i]);
};
由于数组下标从0开始,所以 i 要从0开始,因为数组下标最大为3,所以for循环的条件为i < 3。
结果便是在控制台依次输出:张三,李四,王五,刘六。
三、数组长度
使用数组名.length
可以访问数组的数量(数组长度)。
在遍历数组时,for循环的条件一般不使用明确的数组,因为当数组元素非常多时,去数元素个数是比较麻烦也是不明智的选择,而且数组中的元素可能会进行增删,数组下标也会随之变化。
所以在实际开发中,遍历数组时for循环的条件应改为i < arr.length
比较合适。
即:
var arr = ['张三', '李四', '王五', '刘六'];
for (var i = 0; i < arr.length; i++){
console.log(arr[i]);
};
四、新增数组元素
- 修改length长度。
数组length值可以获取,也可以修改,修改方法就是直接给数组名.length
赋值。
例如:
var arr = ['张三', '李四', '王五', '刘六'];
arr.length = 5;
此时,数组arr中有5个元素,当然,由于没有给第五个元素赋值,所以第五个元素为空且默认值为undefined。
- 修改数组索引号新增数组元素
例如,想在数组arr中追加一个元素“王八”:
var arr = ['张三', '李四', '王五', '刘六'];
arr[4] = '王八';
同时,可以通过这种方法修改已有的数组元素,例如arr[1] = '李九';
,数组中的 ‘李四’ 便被修改为 ‘李九’ 。
注意:如果新增或修改元素的数据类型为字符型,需要加引号;不要直接给数组名赋值,否则数组中的元素会全部被覆盖。
五、综合案例
案例1:筛选数组元素
将数组arr = [2,0,6,1,77,0,52,0,25,7]
中大于10的元素筛选出来并存入一个新数组。
var arr = [2,0,6,1,77,0,52,0,25,7];
var newArr = [];
for (var i = 0; i < arr.length; i++){
if (arr[i] > 10){
newArr[newArr.length] = arr[i];
};
};
案例2:调换元素顺序
将数组arr = ['red','green','blue','pink','yellow']
中的内容反过来存放。
var arr = ['red','green','blue','pink','yellow'];
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--){
newArr[newArr.length] = arr[i];
};
案例3:数组排序(冒泡排序)
将数组arr[3,5,4,1,2]
中的元素从小到大排序。
原理:一次比较两个元素,如果不符合排序,则将这两个元素交换位置。
var arr = [3,5,4,1,2];
for (var i = 0; i <= arr.length; i++){
for (var j = 0; j <= arr.length - i - 1; j++){
if (arr[j] > arr[j + 1]){
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
};
};
};