数组
数组的概念
一组数据的集合,其中的每个数据被称作
元素
,在数组中可以存放任意类型的元素。数组(Array)是一种将一组数据存储在单个变量名下的优雅方式。
创建数组
①利用new关键字创建数组
var 数组名 = new Array([n]);//[]代表可选 若写n,则代表数组的长度
var arr = new Array();//创建了一个名为 arr 的空数组
- 这种方式等学完对象再看
②利用数组字面量创建数组(较常用)
// 1. 使用数组字面量方式创建空的数组
var 数组名 = [];//若写n,则代表数组的长度
//2. 使用数组字面量方式创建带初始值的数组
//3. 声明数组并赋值称为数组的初始化
var arr =['1','2','3','4'];
var arr2 = ['fan',true,17.5];//数组中可以存放任意类型的数据
访问数组元素
索引(下标):用来访问数组元素的序号。索引从
0
开始
// 定义数组
var arrStus = [1,2,3];
// 获取数组中的第2个元素
alert(arrStus[1]);
// 如果访问数组时没有和索引值对应的元素(数组越界),
// 返回值为undefined
遍历数组
把数组中的元素从头到尾都访问一次
数组长度(元素个数) = 数组名.length
// 数组的长度,默认情况下等于元素的个数
// 当我们数组里面的元素发生了变化,length属性跟着一起变
// 如果设置的length属性值大于数组的元素个数,则会在数组末尾出现空白元素;
// 如果设置的length属性值小于数组的元素个数,则会把超过该值的数组元素删除
var arr = ["red", "blue", "green"];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
arr.length = 2;
console.log(arr);// red blue
想要输出多个变量可以用逗号分隔 console.log(sum, average)
数组中新增元素
①修改数组长度length
- length是可读写的
- 通过修改length长度来实现数组扩容的目的
②通过修改数组索引新增数组元素
追加数组元素
var arr1 = ['red', 'green', 'blue'];
arr1[3] = 'pink';
console.log(arr);//pink加入到了数组中
不要直接给数组名赋值否则里面的数组元素都没有了
数组中可以通过以下方式在数组的末尾插入新元素:
// 1. 数组[数组.length] = 新数据;
arr = [] //arr.length = 0;
for (var i = 0; i < 10; i++) {
arr[arr.length] = '0';
}
console.log(arr);
数组案例
// 1. 筛选数组 大于10的元素选出来放到新数组中
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
var j = 0;
for (var i = 0;i < arr.length; i++){
if (arr[i] >= 10) {
newArr[j] = arr[i];
j++;
}
}
console.log(newArr);
//第二种方法 利用数组长度的可变性
for (var i = 0;i < arr.length; i++){
if (arr[i] >= 10) {
newArr[newArr.length] = arr[i];
}
}
// 2. 翻转数组
// 把旧数组索引号第4个取过来(arr.length - 1),给新数组索引号第0个元素 (newArr.length)
// 我们采取 递减的方式 i--
var arr = ['red', 'green', 'blue', 'pink', 'purple'];
var newArr = [];
for(var i = arr.length - 1; i >= 0;i--) {
newArr[newArr.length] = arr[i]
}
console.log(newArr);
//3. 删除数组指定元素
var arr = [2, 6, 1, 0, 77, 6];
var newArr = [];
for (var i = 0; i < arr.length; i++){
if (arr[i] != 0) {
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
冒泡排序
是一种算法,把一系列的数据按照一定的顺序排列显示(从小到大,或从大到小)
var arr = [1, 4, 2, 9];
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);//1 2 4 9