版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章JavaScript基础
(下)循环结构数组案例数组排序算法初识数组数组元素操作二维数组掌握了解掌握掌握学习目标了解循环的作用及执行过程、二维数组的使用12掌握循环语句的使用3掌握continue和break关键字的使用4掌握数组的创建及基本操作、排序算法的使用目录☞点击查看本节相关知识点☞点击查看本节相关知识点初识数组3.23.1循环语句☞点击查看本节相关知识点3.3数组案例☞点击查看本节相关知识点3.4数组元素操作目录☞点击查看本节相关知识点3.5数组排序算法☞点击查看本节相关知识点二维数组3.6知识架构3.1循环结构
1for语句2for循环案例3循环嵌套案例4while语句5do…while语句知识架构3.1循环结构
6continue关键字7break关键字知识架构3.2初识数组1创建数组2访问数组元素3数组遍历知识架构3.3数组案例1获取数组元素中的最大值2数组转换为字符串知识架构3.4数组元素操作1修改数组元素2新增或修改数组元素3筛选数组4删除指定的数组元素5反转数组元素顺序知识架构3.5数组排序算法1冒泡排序2插入排序知识架构3.6二维数组1创建二维数组2二维数组求和3二维数组转置3.1循环结构1
for语句for语句是最常用的循环语句,它适合循环次数已知的情况。for(初始化变量;条件表达式;操作表达式){//循环体}语法结构流程图1案例:使用for语句输出1~100范围内的数字3.1循环结构
for语句初始化变量条件表达式操作表达式for(vari=1;i<=100;i++){console.log(i);}1代码执行流程:执行“vari=1;”初始化变量判断“i<=100”是否为true,如果为true,执行循环体,反之,结束循环执行循环体,通过“console.log(i)”输出变量i的值执行“i++”,将i的值加1,此时i的值为2判断“i<=100”是否为true,和第②步相同。只要满足“i<=100”这个条件,就会一直循环。当i的值加到101时,判断结果为false,循环结束3.1循环结构
for语句13.1循环结构
for语句断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后就可以控制代码一步一步的执行,在这个过程中可以看到每个变量当前的值。13.1循环结构
for语句查看方式:在Chrome浏览器中,按F12键启动开发者工具后,切换到“Sources”面板,界面效果如下图所示,其中右栏是JavaScript调试区。“Sources”面板13.1循环结构
for语句在中栏显示的网页源代码中,单击某一行的行号,即可添加断点,再次单击,可以取消断点。例如,为for语句添加断点,如下图所示。断点调试3.1循环结构2
for循环案例“重复执行相同代码”案例,重复执行N次。varnum=prompt('请您输入次数');for(vari=1;i<=num;i++){console.log('重要的事情说'+num+'遍');}3.1循环结构2
for循环案例“重复执行不同代码”案例for(vari=1;i<=100;i++){if(i==1){//使用if条件判断语句,根据i的不同,进行不同处理console.log('当前是第1次');}elseif(i==100){console.log('当前是第100次');}}3.1循环结构2
for循环案例1~100之间的所有整数“求和”和“平均数”案例varsum=0; //利用sum对计数器i进行累加for(vari=1;i<=100;i++){sum+=i; //相当于sum=sum+i;}console.log('求和:'+sum);//计算结果:5050console.log('求平均值:'+(sum/100));//计算结果:50.53.1循环结构2
for循环案例1~100之间的所有整数“求偶数和”和“求奇数和”案例vareven=0;varodd=0;for(vari=1;i<=100;i++){if(i%2==0){ //判断i是奇数还是偶数even+=i;}else{odd+=i;}}console.log('1~100之间所有的偶数和是'+even);//计算结果:2550console.log('1~100之间所有的奇数和是'+odd);//计算结果:25003.1循环结构2
for循环案例1~100之间的所有能被3整除的整数之和案例varresult=0;for(vari=1;i<=100;i++){if(i%3==0){result+=i;}}console.log(result); //计算结果:16833.1循环结构2
for循环案例自动生成字符串案例varnum=prompt('请输入星星的个数');varstr='';for(vari=1;i<=num;i++){str=str+'★';}console.log(str);3.1循环结构3
循环嵌套案例生成i行j列的星星图案案例varrows=prompt('请输入行数:');varcols=prompt('请输入列数:');varstr='';for(vari=1;i<=rows;i++){for(varj=1;j<=cols;j++){str+='☆';}str+='\n'; //换到下一行}console.log(str);星星图案3.1循环结构3
循环嵌套案例生成三角形的星星图案案例varstr='';for(vari=1;i<=5;i++){for(varj=i;j<=5;j++){//j的初始值为istr=str+'☆';}str+='\n';}console.log(str);三角形图案3.1循环结构3
循环嵌套案例生成九九乘法表案例varstr='';for(vari=1;i<=9;i++){for(varj=1;j<=i;j++){str+=j+'x'+i+'='+i*j+'\t';}str+='\n';}console.log(str);九九乘法表3.1循环结构4while语句while语句可以在条件表达式为true的前提下,循环执行指定的一段代码,直到条件表达式为false时结束循环。while(条件表达式){//循环体}语法结构流程图3.1循环结构5
do…while语句do…while语句会无条件地执行一次循环体中的代码,然后再判断条件,根据条件决定是否循环执行。do{//循环体}while(条件表达式)语法结构流程图3.1循环结构6
continue关键字continue关键字可以在for、while以及do…while循环体中使用,它用来立即跳出本次循环,也就是跳过了continue后面的代码,继续下一次循环。3.1循环结构7
break关键字break关键字的用法:用在switch语句中,当遇到break语句时,跳出switch语句循环语句中使用时,其作用是立即跳出整个循环(将循环结束)注意:break语句还可跳转到指定的标签语句处,实现循环嵌套中的多层跳转3.2初识数组1
创建数组创建数组的两种常见方式的用法:使用“newArray()”创建数组使用“[]”字面量来创建数组//使用newArray()创建数组vararr1=newArray();//使用字面量来创建数组vararr1=[];3.2初识数组2
访问数组元素使用索引来访问数组中的元素,索引是一个数字,从0开始。vararr=['苹果','橘子','香蕉','桃子'];console.log(arr[0]); //输出结果:苹果console.log(arr[1]); //输出结果:橘子console.log(arr[2]); //输出结果:香蕉console.log(arr[3]); //输出结果:桃子console.log(arr[4]);//输出结果:undefined(数组元素不存在)3.2初识数组3
数组遍历数组遍历是将数组中的元素全部访问一遍,可以利用for循环来实现,在for循环中让索引从0开始自增。如果数组元素比较多时,计算数组元素的个数不太方便,这时候可以利用“数组名.length”来快速地获取数组长度。3.3数组案例1
获取数组元素中的最大值案例思路:数组的遍历可以获取数组中的最大值。在遍历时,先用一个变量max保存数组中第1个元素的值,然后比较后面的元素是否比max的值大,如果比max大,就将这个较大的值保存给max,否则就进行下一轮的比较。vararr=[2,6,1,77,52,25,7,99];varmax=arr[0];for(vari=1;i<arr.length;i++){if(arr[i]>max){max=arr[i];}}console.log('数组元素中的最大值是:'+max); //计算结果:993.3数组案例2
数组转换为字符串案例需求:将数组“['red','green','blue','pink']”转换为字符串,并用“|”或其他符号来分隔每个元素,如“red|green|blud|pink”。vararr=['red','green','blue','pink'];varstr=arr[0];varsep='|';for(vari=1;i<arr.length;i++){str+=sep+arr[i];}console.log(str); //输出结果:red|green|blue|pink3.4数组元素操作1
修改数组长度使用“数组名.length”可以获取或修改数组的长度。vararr=['a','b','c'];console.log(arr.length); //输出结果:3获取数组长度数组长度=数组索引+13.4数组元素操作1
修改数组长度vararr1=[1,2];arr1.length=4; //大于原有长度console.log(arr1); //输出结果:(4)[1,2,empty×2]vararr2=[1,2,3,4];arr2.length=2; //小于原有长度
console.log(arr2); //输出结果:(2)[1,2]修改数组长度3.4数组元素操作1
修改数组长度vararr1=[1,2];vararr=[1];arr.length=4; //修改数组的长度为4console.log(arr); //输出结果:(4)
[1,empty×3]console.log(arr[1]); //输出结果:undefined访问空元素时,返回结果为undefined3.4数组元素操作1
修改数组长度//情况1:在使用字面量创建数组时出现空元素vararr=[1,2,,4];console.log(arr); //输出结果:(4)[1,2,empty,4]//情况2:在newArray()中传入数组长度的参数vararr=newArray(4);console.log(arr); //输出结果:(4)
[empty×4]//情况3:为数组添加索引不连续的元素vararr=[1];arr[3]=4; //向数组中添加一个元素,索引为3console.log(arr); //输出结果:(4)
[1,empty×2,4]出现空元素的其他常见的情况:3.4数组元素操作2
新增或修改数组元素vararr=['red','green','blue'];arr[3]='pink'; //新增元素console.log(arr); //(4)
["red","green","blue","pink"]arr[0]='yellow'; //修改元素console.log(arr); //(4)
["yellow","green","blue","pink"]如果给定的索引超过了数组中的最大索引,则表示新增元素,否则表示修改元素。3.4数组元素操作3
筛选数组元素vararr=[2,0,6,1,77,0,52,0,25,7];varnewArr=[];varj=0;for(vari=0;i<arr.length;i++){if(arr[i]>=10){newArr[j++]=arr[i];//新数组索引号从0开始,依次递增}}console.log(newArr);//输出结果:(3)
[77,52,25]案例需求:将一个数组中所有大于或等于10的元素筛选出来,放入到新的数组中。3.4数组元素操作4
删除指定的数组元素vararr=[2,0,6,1,77,0,52,0,25,7];varnewArr=[];for(vari=0;i<arr.length;i++){if(arr[i]!=0){newArr[newArr.length]=arr[i];}}console.log(newArr); //输出结果:(7)
[2,6,1,77,52,25,7]案例需求:将一个数组中所有数值为0的元素删除。3.4数组元素操作5
反转数组元素顺序vararr=['red','green','blue','pink','purple'];varnewArr=[];for(vari=arr.length-1;i>=0;i--){newArr[newArr.length]=arr[i];}//输出结果:(5)
["purple","pink","blue","green","red"]console.log(newArr);案例需求:将一个数组中所有元素的顺序反过来。3.5数组排序算法1
冒泡排序冒泡排序算法:在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。冒泡排序3.5数组排序算法1
冒泡排序案例需求:实现从小到大排序。vararr=[10,7,5,27,98,31];//待排序数组for(vari=1;i<arr.length;i++){//控制需要比较的轮数for(varj=0;j<arr.length-i;j++){//控制参与比较的元素if(arr[j]>arr[j+1]){//比较相邻的两个元素vartemp=arr[j+1];arr[j+1]=arr[j];arr[j]=temp;}}}console.log(arr); //输出结果:5,7,10,27,31,983.5数组排序算法2
插入排序插入排序算法:通过构建有序数组元素的存储,对未排序的数组元素,在已排序的数组中从最后一个元素向第一个元素遍历,找到相应位置并插入。从小到大插入排序3.5数组排序算法2
插入排序案例需求:实现从小到大排序。vararr=[10,8,100,31,87,70,1,88];//按照从小到大的顺序排列,先遍历无序数组下标for(vari=1;i<arr.length;i++){//遍历并比较一个无序数组元素与所有有序数组元素for(varj=i;j>0;j--){if(arr[j-1]>arr[j]){vartemp=arr[j-1];arr[j-1]=arr[j];arr[j]=temp;}}}console.log(arr); //输出结果:1,8,10,31,70,87,88,1003.6二维数组1
创建二维数组创建二维数组的两种常见方式的用法:varinfo=newArray(newArray('Tom',13,155),newArray('Lucy',11,152));console.log(info[0]);//输出结果:(3)
["Tom",13,155]console.log(info[0][0]); //输出结果:Tom使用“newArray()”字面量来创建数组3.6二维数组1
创建二维数组创建二维数组的两种常见方式的用法:varnums=[[1,2],[3,4]];console.log(nums[0]); //输出结果:(2)
[1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市社区口袋绿地建设可行性研究报告
- 2026届江西省宜春市第九中学中考英语四模试卷含答案
- 金属加工项目可行性研究报告
- 画室运营管理交流方案模板
- 果蔬机运营方案
- 大学学院运营方案
- 汗蒸管理运营方案
- 承租电厂运营方案范文
- 健身指导与运营方案
- 新媒体品牌宣传运营方案
- 肛瘘病中医课件
- 重大事故隐患的判定标准
- 国际边境管控原则的法理分析
- GB/T 33658-2025室内人体热舒适环境要求与评价方法
- 中建科技与质量管理手册2024
- 纺织厂消防应急预案
- 电网运行预警管理办法
- 【《基于S7-1200 PLC的风力发电机变桨距复合控制系统设计》8400字(论文)】
- 常州大学c语言考试题及答案
- 道路热熔型标线施划的技术要求
- 2025年中国邮政集团工作人员招聘考试笔试试题(含答案)
评论
0/150
提交评论