通常我们使用得最熟悉的是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);