在js里,数组是一个有序的列表,,可以在数组中存放任意的数据
初体验 :
var arr = ['小马哥','虎哥','帅哥'];
// 总结 :
//1. 变量 : numbder->num1 string-str1, boolean->b1 flag array->arr1
//2. [] , 用[] 来代表数组 => () 小圆 [] 中方 {} 大花
//3. 数组里的每一个值,称之为元素
//4. 类型可以不一样,,但是最好一样
//5. 逗号
//4. 数组是有长度的 length
//5. 下标决定了数组的顺序
// 下标的用法?
// 6. 获取元素 数组[下标]
var arr = ['小马哥','虎哥','凡哥'];
console.log(arr);
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
遍历 : 对数组的每一个元素都访问一次就叫遍历
数组遍历的基本语法:
// 传统遍历
arr[0];
arr[1]
// for遍历 1-100 的演变
// 下标 : 0 arr.length-1
//
for(var i =0; i < arr.length; i++) {
//数组遍历的固定结构
}
练习1 :
var arr = [298, 1, 3, 4, 6, 2, 23, 88,77,44];
//1 求一组数中的所有数的和跟平均值
//2 求一组数中的最大值
//3 求一组数中的最小值和最小值所在的位置
//4 求一组数中的最大值和最小值以及所在位置
练习2 :
var arr = ["a", "bb","ccc","dddd"];
//1.让一个数组倒叙保存另一个数组中的每一项
//2 将字符串数组用|或其他符号分割
//3 有一个字符串数组,求字符串数组中每项的长度,并把长度的数值存储到新的数组中
//4 将数组中值为0的项去掉,将不为0的值存入一个新的数组
声明:我们今天主要是学习数组遍历的语法,对于这种数学烧脑类的题目,想不到是很正常的 ,
//1. 介绍什么冒泡排序?
//2. 如何学习? 以及学习的意义
听着我做一遍,,听完之后了,记下步骤!
//3. 学前准备
思考1 : i < arr.length 是遍历几次 i < arr.length-1 是遍历几次
思考2 : 交换两个变量
思考3 :数组中的最大值放到最后 var arr = [5, 4, 3, 2, 1];
//4. 冒泡排序算法的运作如下:
//比较相邻的元素。如果第一个比第二个大,就交换他们两个。
//对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
//针对所有的元素重复以上的步骤,除了最后一个。
//持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 [1]
5 4 3 2 1
1,2,3,5,4
var isJiaoHuan = '没有交换';
//思路:判断,如果一趟下来,一次交换都没有做,说明就已经排好序,就不需要继续比
//var arr = [65, 97, 76, 13, 27, 49, 58];
var arr = [1, 2, 3, 4, 5, 6, 7];
var tang = 0;
var ci = 0;
for (var i = 0; i < arr.length - 1; i++) {
tang++;
var count = 0;//记录交换的次数
//思路:两两比较,如果前面的大于后面的,交换位置
for (var j = 0; j < arr.length - 1 - i; j++) {
ci++;
if (arr[j] > arr[j + 1]) {
count++;
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
console.log(count);
if (count == 0) {
//说明,没有进行交换
break;
}
}
console.log(arr);
console.log(tang, ci);
break: 记忆 : 立即结束整个for循环, 跳出大括号 1. 立即跳出当前整个循环,即循环结束,开始执行循环后面的内容(直接跳传出大括号) 2. 一般写在打印之后 continue: 记忆 : 结束当前次循环,继续下个循环 1. 立即跳出当前循环,继续下一次循环(跳到i++的地方) (放打印代码前面) 2. 一般写在打印之前
需求 :
//1. 打印 1-5 , 当打印完第3个的时候,停止打印
//2. 打印 1-5 , 当第3个的时候,不打印 ,,1 2 4 5
思考 :
//1. 找到1-100之间第一个能被7整除的数
//2. 打印1-10之间所有的数,除了5这个数
思路:
//1.1 for (1-100)
//1.2 %7 ==0;
//1.3 中止
// 2.1 打印 1-10个数
// 2.2 打印到5的时候,调出去
思考1 :
//输出结果是什么?
for(var i = 1; i <=10; i++) {
if(i == 5){
continue;
}
if(i == 7){
break;
}
console.log(i);
}
思考2 :
//1. 求1-100之间不能被7整除的整数的和(用continue)
//2. 求200-300之间所有的奇数的和(用continue)
//3. 求200-300之间第一个能被7整数的数(break)
总结 :
1.continue 把所有满足条件的都先打印出来,,找到不满足的提出去
2.break : 找到对应的拿到,然后中止