JavaScript基礎總結(三)——數組總結

關於JavaScript中的數組作出了以下總結:
一、數組是用來存儲一組不一樣類型的數據的容器。可使用構造函數的方法和字面量的方法來聲明函數;訪問數組經過下標的方法來訪問;arr.length能夠得到數組長度。
二、數組棧方法包括:javascript

unshift():在數組頭部插入值,返回值爲數組長度
push():在數組末尾插入值,返回值爲數組長度
shift():刪除數組中第一個值,返回值爲被刪除的值
pop():刪除數組中最後一個值,返回值爲被刪除的值

三、數組轉字符串:html

join("轉換成字符的鏈接符,默認爲逗號分開")

四、數組排序:java

reverse()數值反序(例以下:var arr=[1,2,3];
    document.write(arr.reverse());輸出值爲:3,2,1)
sort()元素比較大小(比大小分兩種狀況,例1以下:        
    var arr=[5,2,3];
    var arrs=arr.sort();
    document.write(arrs);輸出值爲2,3,5;
    例2以下:
    var arr=[1,21,3,0];
    document.write(arr.sort());輸出值爲0,1,21,3;
    例2的比較大小是按第一個元素來比較的,正確升序應該爲0,1,3,21,代碼以下:
    var arr=[1,21,3,0];
    document.write(arr.sort(function (x,y){
        return x-y;
    })); 輸入出值爲:0,1,3,21;
    降序爲:
    var arr=[1,21,3,0];
    document.write(arr.sort(function (x,y){
        return y-x;
    })); 輸出值爲21,3,1,0;
    )
 因此sort在對數組進行排序後,返回新數組,sort裏能夠接收一個匿名函數來對數組進行升序與降序

五、splice:具備刪除、替換、插入功能面試

例以下:
    var arr=[1,2,3,5];
    //splice替換值,替換3
    var insertArr=arr.splice(2,1,"我是替換值");//返回被刪除的值
    document.write(arr+"<br />");//輸入結果爲[1,2,我是替換值,5]
    //splice插入值,在3的後面插入值
    var replaceArr=arr.splice(3,0,"我是插入值");
    document.write(arr+"<br />");//[1,2,3,我是插入值,5 ]
    //splice刪除值
    var delArr=arr.splice(2); //返回被刪除的值
    document.write(arr+"<br />"); //[1,2]

六、arr.indexOf(必寫的要查找的項,可選查找的起點的位置索引) 從數組的頭部開始檢測
arr.lastIndexOf(必寫的要查找的項,可選查找的起點的位置索引) 從數組的尾部開始檢測
例:數組

var arr=[1,2,3,5,2,1,3];
    //數組頭部開始檢測元素2的位置
    var firstArr=arr.indexOf(2)
    console.log("數組中從前日後數第一個元素2的下標爲"+firstArr); //輸出值爲1
    //數組尾部開始檢測元素1的位置
    var lastArr=arr.lastIndexOf(1);
    console.log("數組中從後向前數第一個元素1的下標爲"+lastArr); //輸出值爲5

七、常見的數組面試題以下:
1)數組去重函數

<!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        <script type="text/javascript">
            var arr=[1,2,3,1],//原數組
                newArr=[], //新數組
                flag;
            for(var i=0;i<arr.length;i++){//循環原數組
                flag=true;
                for(var j=0;j<newArr.length;j++){ //循環新數組
                    if(newArr[j]==arr[i]){ //若是兩個數組中有相同的數,flag爲假
                        flag=false;
                    }
                };
                if(flag){ //若是flag爲真
                    newArr.push(arr[i]);//將arr[i]插入到新數組中
                }
            }
            document.write(newArr)
        </script>
        </body>
    </html>
 2)數組求和
 <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        <script type="text/javascript">
            //1.計算給定數組 arr 中全部元素的總和
            var arr=[1,2,3];
            function arryAnd(){
                var sum=0;//和的初始值
                for(var i=0;i<arr.length;i++){
                    sum+=arr[i];//sum=sum+0+arr[i]依次類推
                }
                console.log(sum);
            }
            arryAnd();
        </script>
        </body>
    </html>
3)合併數組
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script type="text/javascript">
        //合併數組 arr1 和數組 arr2。不要直接修改數組 arr,結果返回新的數組
        var arr1=[1,2,3],
            arr2=[4,5,6],
            arr;
        function merge(){
            return arr1.concat(arr2)
        }
        console.log(merge());
        console.log(arr)
    </script>
    </body>
</html>

4)將數組中某個數刪除,以0爲例code

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script type="text/javascript">
        var arr=[0,2,3,0,5,0],//舊數組
            newArr=[];
        for(var i=0;i<arr.length;i++){ //循環新數組
            if(arr[i]==0) continue;
            newArr.push(arr[i]);
        }
        console.log(newArr);
    </script>
    </body>
</html>
5)switch星期的獲取
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script type="text/javascript">
        //獲取星期的方法
        var week=new Date().getDay();
        console.log(week);//返回number,0-6
        switch(week){
            case 0:
            document.write("星期日");
            break;
            case 1:
            document.write("星期一");
            break;
            case 2:
            document.write("星期二");
            break;
            case 3:
            document.write("星期三");
            break;
            case 4:
            document.write("星期四");
            break;
            case 5:
            document.write("星期五");
            break;
            case 6:
            document.write("星期六");
            break;
            //或最後一天以下所示:
//            default:
//            document.write("星期六");
        }
    </script>
    </body>
</html>
相關文章
相關標籤/搜索