早起学习加油加油!!!发现忘了好多CSS的内容了,得抽空复习一下...
发现前面200P应该都是我能轻松掌握的知识!加快速度!
数组
数组的概念:
Q: 之前学习的变量,只能存储一个值.如果我们想存储班级中所有学生的名字,那么如何存储呢?
A:可以使用数组(Array).数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式.
Q:什么是数组呢?
A:数组是指一组数据的集合,其中每个数据都被称作元素,在数组中可以存放任意;类型的元素.数组是一种将一组数据存储在单个变量名下的优雅方式.
数组的创建方式:
JS中创建数组的方式有两种
利用new创建数组(这个后面再学习)
var 数组名 = new Array( );
var arr = new Array( ); // 创建一个空数组
利用数组字面量创建数组
var 数组名 = [ ] ;
数组的索引:
索引(下标):用来访问数组元素的符号(数组下标从0开始.)
数组可以通过索引来访问,设置,修改对应的数组元素,我们可以通过'数组名[索引]'的形式获取数组中的元素.
这里的访问就是获取得到的意思.
var arr1 = [1, 2 , 'pink老师', '5'];
console.log(arr1[2]); // pink老师
console.log(arr1[4]); //undefined
注:JavaScript没有下标越界的错误,如果索引超出了元素的数量不会报错,结果是undefined.
遍历数组
遍历数组我们使用for循环即可
var arr1 = [1, 2 , 'pink老师', '5'];
for(var i = 0; i < 4; i++) {
console.log(arr1[i]);
}
注意: i要从0开始,因为索引是从0开始的,索引最大到3,所以要<4.
那么还有一个问题,i < 4是我们数出来的,难道我们每次都要去数有多少个元素吗?我们可以直接用length方法求得元素的个数,然后直接 i < arr1.length就可以了
求数组最大值:
let arr3 = [3, 55, 33, 66, 45, 47];
let biggest = arr3[0];
for (var i = 0; i < arr3.length; i++) {
if (arr3[i] > biggest) {
biggest = arr3[i]
}
}
console.log(`最大值为${biggest}`);
数组中新增元素
我们可以手动修改arr的length值,让他扩容.
let arr5 = [4, 6, 3];
arr5.length = 5;
console.log(arr5);
我们将空的打印出来看看是什么.
console.log(all);
let arr5 = [4, 6, 3];
arr5[3] = 'pink'
arr5[4] = 'green'
console.log(arr5);
注:
如果我们已经有的元素,再重新赋值,那么原先的元素会被替换.
不要直接给数组名赋值,否则整个数组都没有了.
var arr = [];
for (var i = 1; i <= 10; i++) {
arr[i-1] = i; //注意是i-1,否则arr[0]为空值
}
console.log(arr);
课堂案例:冒泡排序
冒泡排序,是一种算法,把一系列的数组按照一定的顺序进行排列显示(从大到小或从小到大).
原理:冒泡排序是一种简单的排序算法,它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数据工作是重复地进行直到没有再需要交换,也就是说该数列已经完成排序.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端.
还没听老师讲,自己做了一下,没想到一次就做出来了! 虽然好像还是存在点问题,但是不影响使用,就是不太严谨,就是i和j的范围问题.
var arr = [5, 4, 3, 2, 1]
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < (arr.length); j++) {
var temp;
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1]
arr[j + 1] = temp;
}
}
console.log(arr);
}
console.log('最后结果为:'+arr);
用了两次循环,因为不可能只比较一次的,所以也要循环比较的趟数.比较的内部也要循环,比较大小.