目录
数组的概念
之前学习的知识,一个变量只能存储一个值。如果想存储一组数据,可以使用数组(Array)。
数组概念:数组是指一组数据的集合,其中的每个数据被称为元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。
创建数组
有两种方式:
1.new关键字创建数组
var 数组名 = new Array(); // 创建空数组对象
2.利用数组字面量创建数组(常用)
// 1.使用数组字面量方式创建空的数组
var 数组名 = [];
// 2.使用数字字面量创建带初始值的数组
var 数组名 = ['小白','小黑',5,true];
数组中可以存放任意类型的数据,例如字符串 、数字、布尔值等
获取数组的元素
数组的索引:用来访问数组元素的序号(数组下标从0开始),数组名[ 索引 ] 的形式访问
var arr = ['小慧','小黑','小红','小白'];
// 索引号 0 1 2 3
console.log(arr[0]); // 打印数组的第一个元素
遍历数组
通过for循环访问数组的每一项
案例:
var arr = ['第一个元素', '第二个元素', '第三个元素', '第四个元素'];
for (var i = 0; i < arr.length; i++) { // arr.length-数组的长度
console.log(arr[i]); // 打印数组的每一项
}
length属性:可以得到数组的长度,length是可读可写的。
数组中新增元素
通过修改length长度新增数组长度
var arr = ['第一个元素', '第二个元素', '第三个元素', '第四个元素'];
arr.length = 5; // 增加数组长度
console.log(arr); // 打印整个数组
console.log(arr[5]); // 打印新增元素
通过案例可以发现,新增元素未给值,默认undefined。
替换元素:
var arr = ['第一个元素', '第二个元素', '第三个元素', '第四个元素'];
arr[0] = '新增元素';
console.log(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]; // 大于等于 10 的元素选出来,放入新数组。
}
}
console.log(newArr); // 77,52,25
要求:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 0 去掉后,形成一个不包含 0 的新数组。
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = []; // 定义空数组,用来存放除了0元素以外的元素
for (var i = 0; i < arr.length; i++) {
if (arr[i] !== 0) { // 不等于0的元素放进新数组
newArr[newArr.length] = arr[i]; // 每次放进新元素,newArr数组长度都会增加
}
}
console.log(newArr);
要求: 将数组 ['red', 'green', 'blue', 'pink', 'purple'] 的内容反过来存放。 输出: ['purple', 'pink', 'blue', 'green', 'red']
var arr = ['red', 'green', 'blue', 'pink', 'purple'];
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) { // 初始值:原始数组-1
newArr[newArr.length] = arr[i];
}
console.log(newArr);
冒泡排序:
是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)。 例如,我们可以将数组 [5, 4, 3, 2, 1]中的元素按照从小到大的顺序排序,输出: 1,2,3,4,5。
分析:
var arr = [5, 4, 3, 2, 1];
for (var i = 0; i < arr.length - 1; 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;
}
}
}
console.log(arr);
打印输出: