22.js--for语句

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.for语法

格式:

for (statement 1; statement 2; statement 3) {
    code block to be executed
}

会发现for没有作用域的真正原因就是上面的解释过程中 大括号是一个代码块

for循环编程时只使用了它非常简单的一个功能 希望重复得到的变化的变量的值 值是有规律的变化

程序1:

//打印数组中的值
        var arr=["hello","css","js","node"]
            for (var i = 0; i < arr.length ;i++) {
				console.log(i,arr[i])				
			}

运行结果:

程序2:

//打印数据的第二个到第6个元素
            var arr=[20,3,4,5,10,6,20,7,35,45,6,56,87,768]
			for(var i=1;i<6;i++){
				 console.log(arr[i])
			}

运行结果:

程序3:

//打印这个数组的下标为奇数的元素
           var arr=[20,3,4,5,10,6,20,7,35,45,6,56,87,768,100]
			for(var i=1;i<arr.length;i=i+2){
				console.log(i,arr[i])
			}

运行结果:

 2.for语句2

        几个表达式中出选择题

 程序1:

            for(var i=0,j=6;i<4,j>0;i++,j--){
				//6 5 4 3 2 1 
				//0 1 2 3 4 5 
				console.log(i)
			}

运行结果:

 3.for语句3

        for中的业务条件筛选和数据处理

 程序1:

           var arr=[
			{age:20,name:"karen",rank:580},
			{age:14,name:"jack",rank:480},
			{age:19,name:"marry",rank:600},
			{age:12,name:"zhangsan",rank:680}
			]

            //打印数组中的对象的名字

			for(var i=0;i<arr.length;i++){
				console.log(arr[i].name)
			}

运行结果:

 

 程序2:

           var arr=[
			{age:20,name:"karen",rank:580},
			{age:14,name:"jack",rank:480},
			{age:19,name:"marry",rank:600},
			{age:12,name:"zhangsan",rank:680}
			]

            //打印年龄大于18岁的对象的名字

			for(var i=0;i<arr.length;i++){
				if(arr[i].age>18){
					console.log(arr[i].name)
				}
			}

运行结果:

 

 程序3:

           var arr=[
			{age:20,name:"karen",rank:580},
			{age:14,name:"jack",rank:480},
			{age:19,name:"marry",rank:600},
			{age:12,name:"zhangsan",rank:680}
			]

            //打印年龄大于18而且rank大于480的对象的名字

			for(var i=0;i<arr.length;i++){
				if(arr[i].age>18&&arr[i].rank>480){
					console.log(arr[i].name)
				}
			}	

运行结果:

 

 

                //for遍历数据容器-for最常用的功能

               //遍历就是把容器中每一个数据都取出

程序4:

           var arr=[
			{age:20,name:"karen",rank:580},
			{age:14,name:"jack",rank:480},
			{age:19,name:"marry",rank:600},
			{age:12,name:"zhangsan",rank:680}
			]

	        // 打印年龄小于18而且rank大于400的对象的名字拼接一个字符串"少年班"
			//大于等于18rank大于480的名字拼接"普通班"

			for(var i=0;i<arr.length;i++){
				if(arr[i].age<18){
					if(arr[i].rank>400){
						console.log(arr[i].name+"-少年班")
					}					
				}
				else if(arr[i].rank>480){
					console.log(arr[i].name+"-普通班")
				}
			}

运行结果:

 

程序5:

           var arr=[
				{id:123,text:"内容1",created_at:"2022-04-28 19:47",user:                   {name:"karen",online_status:1}},
				{id:124,text:"内容2",created_at:"2022-04-27 19:22",user:{name:"jack",online_status:0}},
				{id:125,text:"内容3",created_at:"2022-04-28 19:12",user:{name:"maryy",online_status:1}},
			]

			// 打印每一个对选的text内容 而且在内容后面拼接 在线/不在线	

			for(var i=0;i<arr.length;i++){				
				if(arr[i].user.online_status==1){
					console.log(arr[i].text+"--在线")
				}else if(arr[i].user.online_status==0){
					console.log(arr[i].text+"--不在线")
				}
			}

运行结果:

 

程序6:

           var arr=[
				{id:123,text:"内容1",created_at:"2022-04-28 19:47",user:                   {name:"karen",online_status:1}},
				{id:124,text:"内容2",created_at:"2022-04-27 19:22",user:{name:"jack",online_status:0}},
				{id:125,text:"内容3",created_at:"2022-04-28 19:12",user:{name:"maryy",online_status:1}},
			]

			// 显示内容和时间 时间必须显示(刚刚  "x分钟前"  "xx:xx"   "xx-xx xx:xx")

			for(var i=0;i<arr.length;i++){
				var time=null;
				//时间处理是后面学的 现在看一看
				var nowdate=new Date()//当前时间
				var sinadate=new Date(arr[i].created_at)//指定的时间点
				var absdt=nowdate-sinadate
				// console.log(absdt)
				if(absdt<1000*60){
					time="刚刚"
				}
				else if(60*1000<=absdt&&absdt<60*1000*60){
					time=Math.floor((absdt/1000/60))+"分钟前" //把arr[i].created_at处理成"x分钟前"
				}
				else if(60*1000*60<=absdt&&absdt<60*1000*60*24){
					time=sinadate.getHours()+":"+sinadate.getMinutes()//后面学
				}
				else if(60*1000*60*24<=absdt){
					time=sinadate.getMonth()+1 + "-"+sinadate.getDate()+" "+ sinadate.getHours()+":"+sinadate.getMinutes()
				}
				var re=arr[i].text+"-----"+time
				console.log(re)
			}		

运行结果:

 4.for语句4

        for的嵌套和业务混合

程序1:

           var arr2=[{name:"karen"},{name:"jack"},{name:"marry"}]

			//取出数组中每一个对象
			for(var i=0;i<arr2.length;i++)
			{
				console.log(arr2[i])
			}



			//取出数组中的每一个对象的名字
			for(var i=0;i<arr2.length;i++)
			{
				console.log(arr2[i].name)
			}

运行结果:

 

程序2:

           var arr3=[100,200,300,[2,3,5,4],{name:"karen"}]

			// 取出arr3数组中每一个元素(如果这个元素是数组 再取出数组中元素:遍历)
			for(var i=0;i<arr3.length;i++){
				if(arr3[i] instanceof Array){
					// console.log(arr3[i],1111111111)
					for(var j=0;j<arr3[i].length;j++){
						console.log(arr3[i][j])
					}
				}else{
					console.log(arr3[i])
				}
			}

运行结果:

 

for循环该怎么嵌套

            1.不要管内部的for与外部的for的执行问题==>每一个for都是遍历的自己的数组

            2.for内部有条件语句和数据处理 得到了一个数组  然后用for去遍历它

程序3:

          var arr = [{
					name: "karen",
					its: ["css", "js", "html"],
					books: ["book1", "book5"]
				},
				{
					name: "jack",
					its: ["nodejs", "html"],
					books: ["book2", "book3", "book6"]
				},
				{
					name: "marry",
					its: [],
					books: ["book2"]
				}
			]

            
            //打印arr数组中的所有字符串
			//1.遍历arr 取出每一个对象obj
			//2.obj取出它的每一个成员
			//2.1成员是name直接打印
			//2.2成员是its 是个数组(便历它)
			//2.3成员是books 是个数组(便历它)

            for(var i=0;i<arr.length;i++){
				var obj=arr[i]
				console.log(obj.name)
				// console.log(obj.its)
				for(var j=0;j<obj.its.length;j++){
					console.log(obj.its[j])
				}
				// console.log(obj.books)
				for(var k=0;k<obj.books.length;k++){
					console.log(obj.books[k])
				}
			}

运行结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值