JavaScript基础知识(四)

一、循环结构

1、while循环

'当'循环,当条件为真时,执行循环体语句

  while(条件){
		
		  循环体语句;
		  
}

2、do-while循环

'直到'循环。

(1)'do'是关键字:必须和while结合使用,不能单独使用

(2)无论条件是否为真,循环体语句至少执行一次

3、for循环

for(初始化变量;条件表达式;操作表达式){
     循环体语句;
}

(1)三个表达式都可以省略,但是表达式之间的分号不能省略

(2)初始化变量:给循环变量、其他变量进行初始化

(3)条件表达式:控制循环体语句是否执行

(4)操作表达式:使循环趋向结束的语句

转换为while循环

初始化变量;

while(条件表达式){
    循环体语句;
	操作表达式;
}

4、循环嵌套

var i,j,s=0;
	for(i=1;i<=10;i++){ ---> 外循环
	    for(j=1;j<=10;j++){ ---> 内循环
			    s++;
        }			 
}

在一个循环的内部再套一个或多个循环

(1)利用循环输出九九乘法表

for(var i=1;i<10;i++){
    for(var j=1;j<=i;j++){
         str += i+'*' + j + '='+i*j+'\t';
     }
     str +="\n";
 }
 console.log(str);

(2)输出100以内的所有素数

for(var n=2;n<=100;n++){//外循环:判断是否在100以内
     for(var j=2;j<n;j++){//内循环:判断当前的n是否为素数
         if(n%j===0){//n不是素数
             break;//终止内循环
         }
     }
     if(j>=n){//n是素数
         console.log(n+'\t');//\t让数据与数据之间有间隔
     }
 }

(3)输出1000以内的所有'完数'

for(var n=1;n<=1000;n++){
     var sum=0;
     for(var j=1;j<n;j++){
         if(n%j===0){
             sum = sum+j;
         }
     }
     if(sum===n){
         console.log(n+'是完数');
     }
 }

(4)输出所有'水仙花'数

a = parseInt(n/100);
b = parseInt((n-a*100)/10);
c = n-a*100-b*10;

for(var a=0,b=0,c=0,n=100;n>=100,n<1000;n++){
    a = parseInt(n/100);
    b = parseInt((n-a*100)/10);
    c = n-a*100-b*10;
    if(a*a*a+b*b*b+c*c*c===n){
        console.log(n+'是水仙数')
    }
}

二、数组:类型相同的数据的集合

1、创建数组

(1)使用'[]'创建

var 变量名 = [1,2,3,4];

(2)使用 'new Array'创建

var  变量名 = new Array() //创建一个空数组

2、数组的属性

length(数组默认属性,表示数组的长度)

3、数组元素的访问

数组名[index],'index'的取值在0~length-1

(1)找出一个数组的最大值

var arr =[45,12,35,78,99,466,231];
for(var i=0;i<arr.length;i++){
     if(max<arr[i]){
         max = arr[i];
     }
 }
 console.log(arr);
 console.log('Max:',max);

(2)反转数组中的元素

var arr =[45,12,35,78,99,466,231];
console.log('原数组:',arr);

for(var i=0;i<parseInt(arr.length/2);i++){
    var temp=arr[i];
    arr[i]=arr[arr.length-i-1];
    arr[arr.length-i-1]=temp;
}
console.log('交换后',arr);

4、for...in循环

遍历数组或集合的

for(var 变量  in  数组名或集合名)  //变量中存放的数组或集合的索引
 {
   数组名[变量]
}

5、for...of循环

遍历数组和集合

for(var 变量 of 数组名或集合名) //变量中存放的是数组或集合中的元素
 {
	    console.log(变量);
}

6、forEach循环

 arr.forEach(function(k){  //依次从数组中取出元素放在k中,然后将k作为参数传递给函数
      console.log(k);
 })

 三、二维数组

1、创建

(1)使用'[]'

var arr = [[1,2,3],[4,5,6],[7,8,9]] //3行3列的二维数组

(2)使用'new Array'

var a = new Array(
		new Array(10,20,30),
		new Array(11,22,33),
		new Array(45,56,67)
)

2、元素的访问

 数组名[行下标][列下标] 

(1)二维数组的转置

var a = [
    ['a','b','c'],
    ['d','e','f'],
    ['g','h','i'],
    ['i','k','I']
]
var str='';
for(var i=0;i<a.length;i++){
    for(var j=0;j<a[i].length;j++){
        str +=a[i][j]+'\t';
    }
    str +='\n';
}
console.log("转置前:\n",str);

var res=[]

for(var i=0;i<a[0].length;i++){
    res[i]=[];
    for(var j=0;j<a.length;j++){
        res[i][j]=a[j][i];
    }
}
console.log("转置后:",res);

(2)定义一个二维数组,输出这个数组的每行元素的最大值

var a = new Array(
    new Array(10,40,30),
    new Array(11,55,33),
    new Array(45,86,97)
)
for(var i=0;i<a[0].length;i++){
    var max = a[i][0];
    for(var j=1;j<a[i].length;j++){
        if(max<a[i][j]){
            max=a[i][j];
        }
    }
    console.log(max);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值