通常我们使用得最熟悉的是for循环。
比如对于一组数字的排大小,可以使用冒泡法。
var a=[];
for(var d=0;d<5;d++){
var b=window.prompt("请输入数字:");
a[d]=parseInt(b);
}
for(var n=0;n<a.length;n++){
for(var i=0;i<a.length-n;i++){
if(a[i]>a[i+1]){
var temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
}
}
document.write(a);
目前js的新特性,foreach,遍历每一个元素,为我们提供了方便。
foreach一般用于循环数组,for in一般用于循环对象。
foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
下面,看一个例子,利用foreach来遍历每一个元素,使其乘以10.
var a=[9,8,7,10,5,4,3];
var b=[];
a.forEach(function(value,i){
b[i]=a[i]*10;
});
console.log(a);
console.log(b);
上面提到for...in,一般用于遍历对象,可以看下一下例子:
var obj={
name:"张飞",
age:20,
gender:"男"
};
console.log(obj);
for(var k in obj){
console.log([k,obj[k]]);
}
关于数组,有一个map方法,不仅可以循环函数,还可以作为回调函数,将值返回到新的数组中。
var a=[9,8,7,10,5,12,3];
var myAry= a.map(function(value){
return value*10; //如果不写return,新数组会有原来数组的长度,但是里面的值为undefined
if(value>10){
return value*10;
}else{ //需要写else,不然小于10 的都为undefined
return value;
}
});
console.log(myAry);
filter ,过滤数组,符合条件的进行返回,与map的区别在于不符合的不return,也不会出现undefined。
var myAry1= a.filter(function(value){
if(value>10){
return value;
}
});
console.log(myAry1);