數組的基礎和習題

/*
數組:一個變量來存儲一系列的值。
定義語法:
- 常規方式
- 簡潔方式
- 最簡潔方式

     */
        var names = new Array();
        names[0] = '張三';
        names[1] = '李四';
        names[2] = '王五';

        var names = new Array('張三','李四','王五');
        var names = ['張三','李四','王五','劉7'];
        索引:用下標去訪問
        document.write(names[2]);
        更新:把某個位置的元素的值更改
        names[2] = '王六';
        document.write(names[2]);
        整體輸出
        document.write(names);
        遍歷:從頭到位一個個的使用
        for ( var i = 0; i < names.length; i++){
//            document.write(names[i] + "<br/>");
            //把names數組裏的所有元素更新爲 xiaoming
            names[i] = 'xiaoming';
        }
        document.write(names);
        添加元素
        names[4] = 'xiaoming';
        document.write(names);
        刪除:刪除最後一個 pop()
        document.write(names.length + "<br/>");
        document.write(names + "<br/>");
        names.pop();
        names.pop();
        document.write(names.length + "<br/>");
        document.write(names + "<br/>");
        通過值獲取到下標

        var i = names.indexOf('王五');
        document.write(i);

        var numbers = [11,22,33,777,44,55,66];

1、用三種方式定義一個數組,賦值爲:11,22,33,777,44,55,66,
並利用循環輸出顯示數組裏的所有值(實現數組的遍歷)。
2、基於上題,求出所有數組的元素之和。

     var numbers = [11,22,33,777,44,55,66];

        var sum = 0;
        for (var i = 0; i < numbers.length; i++){
//            sum = sum + i;
            sum = sum + numbers[i];
        }
        document.write(sum);

// 3、基於上題,實現數組的倒序輸出。

     var numbers = [11,22,33,777,44,55,66];
        for ( var i = numbers.length - 1; i >= 0; i--){
            document.write(numbers[i] + "<br/>");
        }

// 4、獲取數組中的最大值(或最小值),並輸出顯示。

     var numbers = [11,22,343,33,777,44,7,55,66];
        //擂主。
        var max = numbers[0];
        for ( var i = 1; i < numbers.length; i++){
            //循環打擂臺
            if ( max < numbers[i]){
                max = numbers[i];
            }
//            document.write("max:" + max + ", numbers[" + i + "]:" + numbers[i] +"<br/>");
        }
        document.write(max);

//刪除某個位置開始的幾個元素

     var numbers = [11,22,343,33,777,44,7,55,66];
        numbers.pop();
        numbers.splice(2,4);
        document.write(numbers);

連接

      var numbers01 = [1,2,3];
        var numbers02 = [10,20,30];
        var numbers = numbers01.concat(numbers02);
        document.write(numbers + "<br/>");
        document.write(numbers.length);

1、不藉助於其他數組,將數組倒序存放,例如:
原始: 11,22,33,777,44,55,66
結果: 66,55,44,777,33,22,11
交換算法:利用一箇中間變量

    var a = 10;
        var b = 20;
        var temp = 0;

        temp = a;  // temp 10   a 10  b 20
        a = b;      // temp 10  a 20  b 20
        b = temp;   //temp 10  a 20  b 10

        var myArray = [11,22,33,777,44,55,66,6];

        //for循環交換,次數是一半
        for (var i = 0; i < myArray.length/2; i++){
            //交換   myArray[i]       myArray[myArray.length - 1 -i]
            var temp = myArray[i];
            myArray[i] = myArray[myArray.length - 1 -i];
            myArray[myArray.length - 1 -i] = temp;

        }
        document.write(myArray);
        /*
        1:i 0  交換雙方: myArray[0]  myArray[6]
        2:i 1  交換雙方: myArray[1]  myArray[5]
        3:i 2  交換雙方: myArray[2]  myArray[4]
        4:i 3  交換雙方: myArray[3]  myArray[3]
        */

2、數組爲var arr=[‘蝸牛’,’百度’,’谷歌’,’騰訊’];刪除數組中的第二個元素,
不要用現成的splice(1,1)。

     var arr=['蝸牛','百度','谷歌','騰訊'];
        //表示要刪除的元素的下標
        var index = 0;

        for ( var i = index; i < arr.length - 1; i++){
            //把後一個元素賦給前一個元素。
            arr[i] = arr[i+1];
            document.write(arr + "<br/>");
        }
        arr.pop();
        document.write("最終結果:" + arr + "<br/>");

3、對數字數組進行升序排序算法。

       var myArr = [120,34,55,90,31,4,200,44];
        var myArr = [120,34,55,90,31,4,200,44];
        //排序算法很多種:冒泡排序 - 兩兩比較,進行交換
        for ( var i = 0; i < myArr.length -1; i++){
            for ( var j = 0; j < myArr.length - 1 - i; j++){
                //兩兩比較,交換
                if ( myArr[j] > myArr[j+1]){
                    //交換
                    var temp = myArr[j];
                    myArr[j] = myArr[j+1];
                    myArr[j+1] = temp;
                }
    //            document.write("第<" + (j+1) + ">次:" + myArr + "<br/>");
            }
        }
        document.write(myArr + "<br/>");
 實現了將最大的頂到了最後一個位置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章