關於for、foreach、filter等的一些用法

一般咱們使用得最熟悉的是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通常用於循環對象。it

foreach語句並不能徹底取代for語句,然而,任何的foreach語句均可以改寫爲for語句版本。io

下面,看一個例子,利用foreach來遍歷每個元素,使其乘以10.console

 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循環

上面提到for...in,通常用於遍歷對象,能夠看下一下例子:function

     var obj={
        name:"張飛",
        age:20,
        gender:"男"
    };
    console.log(obj);
    for(var k in obj){
        console.log([k,obj[k]]);
    }foreach

關於數組,有一個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);

相關文章
相關標籤/搜索