1. 程式人生 > >數據結構之數組篇

數據結構之數組篇

+= 網頁 添加元素 領域 slice ons AR var -i


我本是在廣州體育學院的一名體育生,後來通過一些巧合接觸了前端,覺得挺有意思。一行行的代碼能編寫出一個炫酷的網頁以及完成牛逼的用戶交互。所以決定跨進it的領域,進行殘忍的掉發修行。兜兜轉轉已經學習了有半年時間了。今天這是我寫的第一篇博客,打算在此記錄我在掉發之旅中的一些心得,同時也給自己做個總結,好了廢話不多說,開始著手寫吧。

數組是在JS裏經常遇到的數據類型。數組可存儲同一系列的數據,也可在數組裏存儲不同數據類型的值。

首先總結一下數組一些核心方法:{

            1、concat   拼接兩個或多個數組,並返回結果              

            2、join   將數組所有元素拼接成字符串

            3、indexOf   返回第一個與給定參數的索引,沒有則返回-1

            4、lastIndexOf  返回最後一個與給定參數的索引,沒有則返回-1

            5、sort      給數組元素進行排序 

            6、toString    將數組作為字符串返回

            7、valueOf    將數組作為字符串返回

            等等

                }


創建一個數組 var arr=[ ];
var arr1=new Array( );
var arr2=new Array(5);//創建指定長度的數組

也可以使用元素初始化數組:  var arr3=[1,2,3,4,5,6,7];//下文使用本數組做例子

如果想知道一個數組裏有幾個元素即可使用 數組的length屬性。譬如上面的arr3.length // 7

如果想訪問數組中特定位置的元素可使用數組括號加上元素的下標,比如arr3[0]//結果是1。數組下標是從0開始計算

若想輸出數組的全部元素,我們可以遍歷數組

                    var num=‘ ‘//聲明一個空變量

                    for(var i=0;i<arr3.length;i++){

                      num+=arr3[i]

                     }

                    console.log(num)//輸出數組的全部元素

數組的添加、刪除元素:

1、添加元素:尾部添加元素push()、頭部添加unshift()、還有一種指定位置添加splice(index,removelength,item1......,itemN),

添加元素也可以直接賦值給數組,比如arr3[8]=2,這樣等於在數組尾部添加了數字2

2、刪除元素:尾部刪除並返回該元素pop()、頭部刪除元素shift()、指定位置刪除splice(index,removelength)

splice()方法裏面參數index、removeindex是必需的。index是指定元素位置,removelength則是刪除元素的個數(如果填寫0則不刪除),item1--itemN則是添加的元素,可以有N個值。

3、數組合並:concat( )方法:arr3=[1,2,3,4,5,6,7];

             newarr=[8,9];

             arr3.concat(newarr)//合並兩個數組,輸出arr3=[1,2,3,4,5,6,7,8,9]

4、join方法:將數組拼接成字符串形式返回。arr3.join(‘—’)//會返回"1-2-3-4-5-6-7"

5、數組的排序:給定一個無序的數組narr=[1,3,5,7,3,2,6,2];我們可以直接用narr.sort()來排序沒有問題。結果輸出是//[1, 2, 2, 3, 3, 5, 6, 7]

但是如果是narr1=[1,3,21,33,52,6]使用narr1.sort()進行排序輸出結果是//[1, 21, 3, 33, 52, 6]

為什麽會這樣,因為sort方法在比較時把元素默認成字符串進行比較

那麽既然傳入的都是數字,我們可以給他一個方法,這樣寫narr1.sort(function(a,b){

                            return a-b 

                          })//這樣在排序時傳入的a,b就會進行比較,如果a>b那麽就會返回正數,反之返回負數,相等返回0。sort方法會根據返回的值進行排序。

如果還不明白那麽我們可以寫成function arrSort(a,b){

                if(a>b){

                  return 1}else if(a<b){

                       return -1}else{

                           return 0}

              }

              narr1.sort(arrSort)//sort方法調用前面定義的arrSort()函數,然後用它進行排序數組。

6、搜索:有兩個方法,分別是indexOf以及lastIndexOf。在這裏我們重新定義數組 var arr=[1,2,3,4,5,7,1];然後我們使用兩種方法搜索數組裏面的數字1,看下輸出結果

arr.indexOf(1)//返回索引是0,該方法返回第一個與給定元素匹配的索引

arr.lastIndexOf(1)返回索引是6,該方法返回最後一個與給定元素匹配的索引

7、還有forEach、slice、every等一些方法沒有介紹,後面會陸續寫完

最後寫一個小例子:已知斐波那契數列的第一個數字是1,第二個數字是2,從第三項開始,每一項等於前兩項的和,求數列的前20個數字。

var num=[];

num[1]=1;

num[2]=2;

for(var i=3;i<20;i++){

num[i]=num[i-2]+num[i-1]

}

for(var i=0;i<num.length;i++){

console.log(num[i])

}

數據結構之數組篇