为了账号安全,请及时绑定邮箱和手机立即绑定

关于JS 循环迭代是什么?

关于JS 循环迭代是什么?

慕小猿 2017-05-26 19:06:55
查看完整描述

3 回答

?
清风流光

TA贡献8条经验 获得超0个赞

(function(){					//for循环的第二个为判断语句,i=0时转化布尔值为false,i-- 是先判断后自减再循环 一个简单的测试 i=1;a=i--;alert(a);alert(i);
	var a=[1,2,3,4,5],
	b=[],
	i=a.length;
	for(;i--;){
		b.push(a[i]);
	}
	document.write(b+ "<br>");
})();							//匿名函数之前和之后的逗号不能省略,否则会报错
(function(){					//a[5]等于undefined转化为布尔值为false
	var a=[1,2,3,4,5],
	b=[],
	i=0;
	for(;a[i];i++){
		b.push(a[i]);
	}
	document.write(b+ "<br>");
})();
(function(){
	var a=[1,2,3,4,5],
	b=[];
	a.forEach(function(value,index,array){			//和for循环类似
		b.push(value);// 值	    序列      数组
	})
	document.write(b+"<br>");
})();
(function(){
	var a=[1,2,3,4,5],b;
	b=a.map(function(value,index,array){			//计算结果 返回新数组
		return ++value;
	});
	document.write(b+"<br>");
})();
(function(){
	var a=[1,2,3,4,5],b;
	b=a.filter(function(value,index,array){			// 过滤 满足条件的值返回新数组
		return value>1;   
	});
	document.write(b+"<br>");
})();
(function(){
	var a=[1,2,3,4,5],b;
	b=a.reduce(function(pre,next){					//可用于前后项计算就和返回新数组
		return pre+next;
	});
	document.write(b+"<br>");
})();
(function(){
	var a=[1,2,3,4,5],b;							//判断是否全满足  返回布尔值
	b=a.every(function(value,index,array){
		return value>1;
	})
	document.write(b+"<br>");
})();
(function(){
	var a=[1,2,3,4,5],b;
	b=a.some(function(value,index,array){			//判断是否能满足 有一项即可  返回布尔值
		return value>1;
	})
	document.write(b+"<br>");
})();
(function(){					//						a				这是由下面5个小对象组成的一个新对象
	var a={q:1,w:2,e:3,r:4,t:5},//				{q:1,w:2,e:3,r:4,t:5}   :之前的叫做键  :后面叫做值  大括号表示它们在一个层
	b=[],						//				        a				尝试用树状图连起来去理解   a={q:[{v:1},2,3],w:[4,5,6],e:[7,8,9]}         		
	i;							//			{   q	   w	  e	   }	q是a的属性也是对象  js里一切皆对象		
	for(i in a){				//		[{v:1},2,3],[4,5,6],[7,8,9]		将值看作数组,调用方式是a.q[0].v调用是结果 1
		b.unshift(a[i]);		//		上面的{v:1}可以旋转过来 1和2,3其实不在一个层里			
	}							//		回归本题  for in 循环遍历对象  遍历的结果为 键 通过 键 调出值			
	document.write(b+ "<br>");	//		unshift 代表  向数组的开头添加元素 
})();


查看完整回答
反对 回复 2017-05-27
?
saber大爱_0

TA贡献8条经验 获得超1个赞

循环算是最基础的概念, 凡是重复执行一段代码, 都可以称之为循环. 大部分的递归, 遍历, 迭代, 都是循环.

递归的定义是, 根据一种(几种)基本情况定义的算法, 其他复杂情况都可以被逐步还原为基本情况.
在编程中的特征就是, 在函数定义内重复调用该函数.
例如斐波那契数列, 定义F(0)=1, F(1)=1, 所有其他情况: F(x)=F(x-1)+F(x-2). 所有大于1的整数经过有限次的反推之后都可以转换到两种基本情况. 而在编程中, 算法则是这样的:

int F(x)
{    if(x==0 || x==1)        return 1;    //这里是退出递归的条件, 以保证在有限次递归后能够得到结果
   return F(x-1)+F(x-2);    //转化为更为基本的情况, 重复调用自身进行计算}

迭代在数学和编程中有不同的含义. 迭代(数学): 在循环的基础上, 每一次循环, 都比上一次更为接近结果.
例如下面是一个迭代的例子.

int result = 0;for(int i=0; i<10; i++)    result += i;    //每一次循环之后, result都更加接近结果45

有很多数学问题, 都是迭代算法, 如牛顿迭代法(求平方根).

迭代(编程): 按顺序访问一个列表中的每一项, 在很多编程语言中表现为foreach语句


查看完整回答
反对 回复 2017-05-27
  • 3 回答
  • 0 关注
  • 2343 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信