JavaScript我學之七數組

來源:互聯網
上載者:User

標籤:

 本文是金旭亮老師網易雲課堂的課程筆記,記錄下來,以供備忘。

數組是“多態數組" ,啥都可以放
1         //JavaScript中的多態數組2         var arr = ["one", 2, true,3             function (a, b) { return a + b; },4             [1,2,3]5         ];

數組是一個對象,擁有自己的屬性與方法

1        //數組是一個對象2         console.info(arr);3         console.info(arr.length);
訪問與寫入訪問
1         //數組元素通過下標訪問2         console.info(arr[0]); //one3         //調用放在數組中的函數4         console.info(arr[3](100, 200));//3005         //訪問放在數組中數組6         console.info(arr[arr.length - 1].length);//37         //當讀取沒有內容的位置時,返回undefined8         console.info(arr[100]);//undefined
寫入:
 1         var arr2 = []; 2         //向空數組賦值,將導致數組中添加一個元素 3         arr2[0] = "Hello"; 4         //讀取新加入的元素 5         console.info(arr2[0].toUpperCase()); 6         //跳著賦值,將導致數組自動地增長 7         arr2[3] = 3; 8         console.info(arr2.length);//4 9         console.info(arr2);//["Hello", 3: 3]10         //中間的值為undefined11         console.info(arr2[1]); //undefined
 在尾部追加:
1         //自動在尾部追加元素2         var arr3 = [];3         for (var i = 0; i < 5; i++) {4             arr3[arr3.length] = i;5         }6         //數組內容為:[0, 1, 2, 3, 4]7         console.info(arr3);
數組常用方法: concat  直接連接兩個數組的元素。
1             var left = [1, 2], right = [3, 4];2             console.info(left.concat(right));   //[1,2,3,4]
join  數組中每個元素通過分隔字元相連.
1         var words = ["鎚子", "剪刀", "布"];2         var result = words.join(‘<-->‘);3         //鎚子<-->剪刀<-->布4         console.info(result);
數組當 堆棧:                    push 入棧                     pop   出棧
1            var m_arr = [‘a‘, ‘b‘, ‘c‘];2            m_arr.push(‘d‘);3            console.info(m_arr); //["a","b","c","d"]4            m_arr.pop();5            console.info(m_arr); //["a","b","c"]
開頭運算元組元素:

                    unshift  開頭插入

                    shift     刪除開頭
1         var arr = ["a", "b", "c"];2         arr.unshift("99");3         console.info(arr);   //["99", "a", "b", "c"]4         var shifted = arr.shift();5         console.info(shift); //996         console.info(arr); //["a", "b", "c"] 
截取:                    使用 slice提取子數組                    按[起始索引值,結束索引值) 來截取:
1             var bigArr = ["a", "b", "c", "d", "e", "f"];2             var subArr = bigArr.slice(1, 4);3            console.info(subArr);  //"b","c","d"
刪除元素: 

                      splice  從第n個索引值開始刪除m個

1              var arr = ["a", "b", "c", "d", "e", "f"];2             arr.splice(2, 3);   //索引值第2個開始刪除3個3             console.info(arr); // a, b, f

                       delete  雖刪除但下標猶在. 

1          var arr = ["a", "b", "c", "d", "e", "f"];2         delete arr[2];3         console.info(arr);  //["a", "b", 3: "d", 4: "e", 5: "f"]4         console.info(arr[2]);  //undefined

                     當splice有多於2個參數時,就變成刪除後再插入元素

1             var arr = ["a", "b", "c", "d", "e", "f"];2             arr.splice(2, 3,"one","two");   //索引值第2個開始刪除3個後再插入 one , two3             console.info(arr); // a,b,one,two,f

 

 數組排序:  排序與反轉:
1             var data = [];2             for (i=0 ;  i<=6; i++) {3                 data[data.length] = Math.floor(Math.random() * 100);4             }5             console.info(data.sort()); //升序6             console.info(data.reverse()); //反轉
 對象數組也排序:
  • 自訂排序的關鍵在於設計好排序比較函數。
  • 排序是在原數組上進行的.
 1   //定義一個Person建構函式 2             function Person(name, age) { 3                 this.name = name; 4                 this.age = age; 5             }; 6             //定義一個函數,用於輸出Person集合中的資料 7             function printPeople(arr) { 8                 for (var i = 0; i < arr.length; i++) { 9                     console.info(arr[i].name + "有" + arr[i].age + "歲");10                 }11             };12             //使用forEach方法,以回調方式遍曆處理數組中的元素13             function printPeople2(arr) {14                 //forEach回呼函數參數說明:15                 //value:代表數組中的單個元素16                 //index:代表數組中此元素對應的索引17                 //traversedObject:引用被遍曆的數組18                 arr.forEach(function (value, index, traversedObject) {19                     console.info(value.name + "有" + value.age + "歲");20                 });21             };22             //產生測試資料23             var people = [];24             for (var i = 1; i < 5; i++) {25                 var age = Math.floor(Math.random() * 100);26                 people[people.length] = new Person(‘使用者‘ + i, age);27             }28             console.info("原始數組:");29             printPeople(people);30             //自訂排序31             //比較函數具有兩個參數 a 和 b,其傳回值如下:32             //若 a 小於 b,在排序後的數組中 a 應該出現在 b 之前,則返回一個小於 0 的值。33             //若 a 等於 b,則返回 0。a,b視為相等34             //若 a 大於 b,則返回一個大於 0 的值。b應該排在a的後面35             people.sort(function (p1, p2) {36                 if (p1.age > p2.age) return 1;37                 if (p1.age < p2.age) return -1;38                 return 0;39             });40             console.info("排序後的數組:");41             printPeople2(people);

 

JavaScript我學之七數組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.