JS语句——for语句及一些相关问题

65 阅读1分钟

for循环(遍历):循环代码块一定的次数

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

for(初始值;收尾条件;变化的规律){代码}
注意:for循环相当于
{初始值;
    if(收尾条件){
         代码;
         变化的规律;
         循环:if(收尾条件){代码;变化的规律;}
      }else{}
  }

image.png

image.png 思考: 1.问题:

image.png 解答:4,4,4,4

     <script type="text/javascript">
			var arr=[];
			for(var i=0;i<4;i++){
				arr[i]=function(){console.log(i)}
			}
			/*上面代码的解释
			var arr=[];
			{
				var i=0;
				if(0<4){
					arr[0]=function(){console.log(i)};
					//函数不会运行,因为没有调用
					i++;
					if(1<4){
						arr[1]=function(){console.log(i)}//同上
						i++;
						if(2<4){
							arr[2]=function(){console.log(i)}//同上
							i++;
							if(3<4){
								arr[3]=function(){console.log(i)}//同上
								i++;//这个时候i=4,函数里面的i也就为4
							}
						}
					}
				};
				
			}*/
			arr[0]()//这个地方调用函数是在上面for循环执行完后再运行的,所以最后的答案为4
			arr[1]()//同上
			arr[2]()//同上
			arr[3]()//同上
          </script>

2.问题

image.png 答案:

                    <script type="text/javascript">
			var arr=[
				{id:123,text:"内容1",time:"2022-05-28 19:30"},
				{id:124,text:"内容2",time:"2022-05-31 19:30"},
				{id:125,text:"内容3",time:"2022-06-06 14:50"}
			];
			for(var i=0;i<arr.length;i++){
				var nowdate=new Date();//现在的时间
				var zhidingdate=new Date(arr[i].time);//指定的时间
				var time2=nowdate-zhidingdate//指定时间距离现在过去了多久,这里求出来的值为毫秒数
				if(time2<1000*60){
					re="刚刚"
				}else if(time2<1000*60*60){
					re=Math.floor(time2/(1000*60))+"分钟前"//Math.floor()方法是用来向上取整
				}else if(time2<1000*60*60*24){
					re=zhidingdate.getHours()+":"+zhidingdate.getMinutes()
				}else{
					re=zhidingdate.getMonth()+1+"-"+zhidingdate.getDate()+"    "+zhidingdate.getHours()+":"+zhidingdate.getMinutes()
				}
				console.log(re)
				
			}
		</script>
                    

image.png 3.问题

image.png 答案:

<script type="text/javascript">
			var arr=[1,2,[1,2,3,4],{name:"karen"}];
			for(var i=0;i<arr.length;i++){
				if(arr[i] instanceof Array){
					//instanceof运算符:检测左侧的对象是否是右侧类的实例,如果是则返回true
					for(var j=0;j<arr[i].length;j++){
						console.log(arr[i][j])
					}
				}
				else{
					console.log(arr[i])
				}
			}
		</script>
                    

image.png 4.问题:

image.png 答案:

<script type="text/javascript">
		var arr=[
			{name:"karen",
			its:["e","r","h"],
			books:[1,2,3]},
			{name:"jack",
			its:[],
			books:[1,2,6]},
			{name:"karen",
			its:[],
			books:[1,2,4]}
			]
			for(var i=0;i<arr.length;i++){
				console.log(arr[i].name);
				for(var j=0;j<arr[i].its.length;j++){
					console.log(arr[i].its[j])
				}
				for(var h=0;h<arr[i].books.length;h++){
					console.log(arr[i].books[h])
				}
			}
		</script>
                    

image.png