4日6日--ES5新增數組方法

  forEach使用的函數調用,因此佔內存比較大,不如定長for循環和迭代for循環javascript

  一、經過forEach將數組中的元素逐個表示出來(遍歷方法,讀取操做)。html

  二、經過map將原數組中的元素進行算數運算,並把值返還給新建的數組中(遍歷方法,修改操做)。java

  三、filter提取原數組中符合條件的元素並放在新建的數組中(數據的帥選方法)。數組

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ES5新增數組方法1</title>
    <script type="text/javascript">
        var arr = ["mike","john","andy","bob","jerry","tom"];
        arr.forEach(function(n,i){
            console.log("第"+(i+1)+"個數據是:"+n);
        });

        // for(var i=0,len=arr.length;i<len;i++){}

        //匿名函數絕大多數場合用於回調
        // 匿名函數也能調用,但僅限一次
        // (function () {
        //     console.log('匿名函數');
        // })();

        var num=[3,4];
        var ret=num.map(function(n){
            // console.log(arguments);
            return n*n;//返回值出如今結果數組中
        });
        console.log(ret);
        console.log(num);

        console.log('=====');
        num=[3,5,78,2,13];
        ret=num.filter(function(n){
            return n%2==0;//返回值爲true的數據出如今結果數組中
        });
        console.log(ret);

    </script>
</head>
<body>
    
</body>
</html>

 

  四、經過some和every對數組進行條件方法的斷定,every:數組中的每一個元素都知足條件才爲true否組爲false。some:只要數組中的有元素知足條件就爲true函數

  五、indexOf(8)返回數組中第一個8所在的位置,lastIndexOf(8)返回數組中最後一個8所在的位置spa

    經過do{}while()+indexOf來返回數組中全部8所在的位置。code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ES5新增數組方法2</title>
    <script type="text/javascript">
        var arr=[12,8,5,7,8,3,8,22];
        var ret=arr.every(function(n){
            return n>3;
        });
        console.log(ret);
        console.log('======');
        var find=arr.indexOf(8);
        console.log(find);
        find=arr.lastIndexOf(8);
        console.log(find);
        console.log('======');
        find=-1;
        do{
            find=arr.indexOf(8,find+1);
            if(find==-1){
                break;
            }
            console.log("find="+find);
        }while(true);

    </script>
</head>
<body>
    
</body>
</html>

 

 六、 var sum=arr.reduce(function(pre,curr){
    return pre+curr;
    });htm

  經過reduce對數組進行元素相加blog

  七、二維數組:數組中存放的數據仍是數組ip

    二維數組扁平化(轉爲一維數組,在二維數組每一維的數量都相同時有意義)

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ES5新增數組方法3</title>
    <script type="text/javascript">
        var arr=[1,8,5,4];
        // arr.reduce(function(pre,curr,index){
        //     console.log(arguments);
        //     return curr;
        // });
        var sum=arr.reduce(function(pre,curr){
            return pre+curr;
        });
        //1+8=9 9+5=14 14+4=18
        console.log(sum);
        console.log('=====');
        //二維數組:數組中存放的數據仍是數組
        var multi=[];
        multi[0]=[2,4,8];//2 4 8 4 7 2
        multi[1]=[4,7,2];
        multi[2]=[14,17,12];
        multi[3]=[24,27,22];
        console.log(multi);
        for(var i=0,len=multi.length;i<len;i++){
            for(var j=0,len2=multi[i].length;j<len2;j++){
                console.log(multi[i][j]);
            }
        }
        console.log('=====');
        //二維數組扁平化(轉爲一維數組,在二維數組每一維的數量都相同時有意義)
        var newarr=multi.reduce(function(pre,curr){
                return pre.concat(curr);
        });
        console.log(newarr);
        //獲取2,2位置的數據:
        var i=2;
        var j=2;
        var index=i*3+j;//3是每一維的長度,視具體數組而變
        console.log(newarr[index]);
    </script>
</head>
<body>
    
</body>
</html>
相關文章
相關標籤/搜索