好程序員web前端分享數組及排序、去重和隨機點名

好程序員web前端分享數組及排序、去重和隨機點名,棧堆結構:堆棧都是一種數據項按序排列的數據結構,只能在一端(稱爲棧頂(top))對數據項進行插入和刪除。html

棧:存放的是路徑;容量有限(在一開始被定義以後就不會改變了);先進後出(FILO)first In
 Last Out前端

堆:路徑映射的數據;容量無限(由於一直可能被改變);列隊優先,先進先出(FIFO)first In Last Out程序員

若是咱們把數組理解爲棧堆結構的話,那麼 web

var arr =  [1,2,3,4,5,6 ];算法

那麼arr就是 棧 他是一個路徑 : 找到數據的存儲層;數組

數據 [1,2,3,4,5,6] 就是堆 ; 數據結構

若是咱們想要 改變堆中的數據的話,那麼咱們能夠用push()方法向尾部添加一個數據,或者用pop()方法刪除尾部數據。
數組:
for-in(結合數組或對象);dom

數組的概念,一組(通常狀況下相同類型)的數據;函數

下標(索引)的概念;spa

建立數組

var arr= new Array(10); //建立一個包含 10 個元素的數組;

var arr2= new Array('楊懷智',100,'教師','遼寧');//使用構造函數建立;

var arr3 = [1,2,3,4,5];

靜態賦值

arr[0] = 5;

arr[1] = 12;

arr[2] = 4;

動態賦值

for(var i=0; i<5; i++){

    arr[i] = Math.random();

}
數組對象自帶的屬性:length表明數組有多少數據項;

遍歷訪問數組  普通for循環和 forEach循環

arr.forEach(function(element,index,Arr){

})

push/pop、unshift/shift方法

arr.push('BJ'); //數組末尾添加一個元素

arr.unshift('TJ');  //數組開頭添加一個元素

var str = arr.pop();   //移除末尾一個元素,並返回該元素

var str = arr.shift();   //移除開頭一個元素,並返回該元素

隊列結構:

練習:找出全部1-100之間7的倍數和包含7的數字

倒序reverse方法;

arr.reverse()方法不會建立新的數組,而是將原有數組順序進行了改變;

var arr=[1,2,3]

arr.reverse();

console.log(arr)//3,2,1

從小到大排序sort方法  (數字的排序)
冒泡排序算法:

圖片描述

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script>
            var arr = [2, 333, 1, 4, 6, 5, 7, 8];
            for (var i = 0; i < arr.length - 1; i++) {
                for (var j = 0; j < arr.length - i; j++) {
                    var ls;
                    if (arr[j] > arr[j + 1]) {
                        ls = arr[j];
                        arr[j] = arr[j + 1]
                        arr[j + 1] = ls
                    }
                }
            }
            console.log(arr)
        </script>
    </head>
    <body>
    </body>
</html>

選擇排序算法:
圖片描述

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script>
            var arr = [3, 4, 1, 5, 2]
            for (var i = 0; i < arr.length; i++) { //趟數
                var min = arr[i];
                var index = i;
                for (var j = i; j < arr.length; j++) {
                    if (min > arr[j]) {
                        min = arr[j];
                        index = j;
                    }
                }
                arr[index] = arr[i];
                arr[i] = min;
            }
            document.write(arr);
        </script>
    </head>
    <body>
    </body>
</html>

案例:去重

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <script>
            var arr = [11, 2, 33, 4, 2, 11, 3, 44, 33, 2]
            arr.sort();
            var arr2 = [arr[0]]
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] != arr2[arr2.length - 1]) {
                    arr2.push(arr[i]);
                }
            }
            alert(arr2)
        </script>
    </head>
    <body>
    </body>
</html>

隨機點名程序:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <script>
            document.onclick = function() {
                var aName = ['楊懷智1', '楊懷智3', '楊懷智4']
                var rad = Math.round(Math.random() * 2);
                document.write(aName[rad])
            }
        </script>
    </head>
    <body>
        隨機點名
    </body>
</html>
相關文章
相關標籤/搜索