陣列知識大全

2022-05-07 04:51:09 字數 2578 閱讀 5623

如前所述,所有物件都具有tolocalestring()、tostring()和valueof()方法。其中,呼叫陣列的tostring()方法會返回由陣列中每個值的字串形式拼接而成的乙個以逗號分隔的字串。而呼叫valueof()返回的還是陣列。實際上,為了建立這個字串會呼叫陣列每一項的tostring()方法。

另外,tolocalestring()方法經常也會返回與tostring()和valueof()方法相同的值,但也不總是如此。當呼叫陣列的tolocalestring()方法時,它也會建立乙個陣列值的以逗號分隔的字串。而與前兩個方法唯一的不同之處在於,這一次為了取得每一項的值,呼叫的是每一項的tolocalestring()方法,而不是tostring()方法。

陣列繼承的tolocalestring()、tostring()和valueof()方法,在預設情況下都會以逗號分隔的字串的形式返回陣列項。而如果使用join()方法,則可以使用不同的分隔符來構建這個字串join()方法只接收乙個引數,即用作分隔符的字串,然後返回包含所有陣列項的字串。

如果陣列中的某一項的值是 null 或者 undefined,那麼該值在join()、tolocalestring()、tostring()和valueof()方法返回的結果中以空字串表示。

棧方法 ecmascript陣列也提供了一種讓陣列的行為類似於其他資料結構的方法。具體說來,陣列可以表現得就像棧一樣,後者是一種可以限制插入和刪除項的資料結構。棧是一種 lifo(last-in-first-out,後進先出)的資料結構,也就是最新新增的項最早被移除。而棧中項的插入(叫做推入)和移除(叫做彈出),只發生在乙個位置——棧的頂部。ecmascript為陣列專門提供了push()和pop()方法,以便實現類似棧的行為。

棧資料結構的訪問規則是lifo(後進先出),而佇列資料結構的訪問規則是fifo(first-in-first-out,先進先出)。佇列在列表的末端新增項,從列表的前端移除項。由於push()是向陣列末端新增項的方法,因此要模擬佇列只需乙個從陣列前端取得項的方法。實現這一操作的陣列方法就是shift(),它能夠移除陣列中的第乙個項並返回該項,同時將陣列長度減1。結合使用shift()和push()方法,可以像使用佇列一樣使用陣列。ecmascript還為陣列提供了乙個unshift()方法。顧名思義,unshift()與shift()的用途相反:它能在陣列前端新增任意個項並返回新陣列的長度。因此,同時使用unshift()和pop()方法,可以從相反的方向來模擬佇列,即在陣列的前端新增項,從陣列末端移除項,

陣列中已經存在兩個可以直接用來重排序的方法:reverse()和 sort()。

ecmascript為操作已經包含在陣列中的項提供了很多方法。其中,concat()方法可以基於當前陣列中的所有項建立乙個新陣列。具體來說,這個方法會先建立當前陣列乙個副本然後將接收到的引數新增到這個副本的末尾,最後返回新構建的陣列。在沒有給concat()方法傳遞引數的情況下,它只是複製當前陣列並返回副本。如果傳遞給concat()方法的是一或多個陣列,則該方法會將這些陣列中的每一項都新增到結果陣列中。如果傳遞的值不是陣列,這些值就會被簡單地新增到結果陣列的末尾。

下乙個方法是slice(),它能夠基於當前陣列中的一或多個項建立乙個新陣列。slice()方法可以接受一或兩個引數,即要返回項的起始和結束位置。在只有乙個引數的情況下,slice()方法返回從該引數指定位置開始到當前陣列末尾的所有項。如果有兩個引數,該方法返回起始和結束位置之間的項——但不包括結束位置的項。注意,slice()方法不會影響原始陣列。

如果slice()方法的引數中有乙個負數,則用陣列長度加上該數來確定相應的位置。例如,在乙個包含5項的陣列上呼叫slice(-2,-1)與呼叫slice(3,4)得到的 結果相同。如果結束位置小於起始位置,則返回空陣列。

下面我們來介紹splice()方法,這個方法恐怕要算是最強大的陣列方法了,它有很多種用法。  1splice()的主要用途是向陣列的中部插入項,但使用這種方法的方式則有如下3種。

刪除:可以刪除任意數量的項,只需指定2個引數:要刪除的第一項的位置和要刪除的項數。 例如,splice(0,2)會刪除陣列中的前兩項。   

插入:可以向指定位置插入任意數量的項,只需提供3個引數:起始位置、0(要刪除的項數)和要插入的項。如果要插入多個項,可以再傳入第

四、第五,以至任意多個項。例如,splice(2,0,"red","green")會從當前陣列的位置2開始插入字串"red"和"green"。    

替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定3個引數:起始位置、要刪除的項數和要插入的任意數量的項。插入的項數不必與刪除的項數相等。例如, splice (2,1,"red","green")會刪除當前陣列位置2的項,然後再從位置2開始插入字串  "red"和"green"。

splice()方法始終都會返回乙個陣列,該陣列中包含從原始陣列中刪除的項(如果沒有刪除任何項,則返回乙個空陣列)。

電腦知識大全

www.96pc.com gz 電腦故障排除知識 www.96pc.com xt 電腦作業系統知識 www.96pc.com bijiben筆記本知識大全 www.96pc.com rj 軟體應用 www.96pc.com diy 電腦diy配置 www.96pc.com yj 硬體維護 www.9...

電腦知識大全

記憶體越大,機器越快?我想大多數人的回答都是肯定的,從256m到512m的提示是明顯的,所以想當然的,從512m到1g的提公升也會很明顯吧。但是我用我的親身經歷告訴你,1g的記憶體比512m還慢,當然前提是你什麼都不設定。前幾天我把我的compaq n410c擴充套件到了1g的記憶體,2 512m ...

電腦知識大全

一 網線問題導致網速變慢 我們知道,雙絞線是由四對 線按嚴格的規定緊密地絞和在一起的,用來減少串擾和背景 噪音的影響。同時,在t568a標準和t568b標準中僅使用了雙 絞線的1 2和3 6四條線,其中,1 2用於傳送,3 6用於 接收,而且1 2必須來自乙個繞對,3 6必須來自乙個繞對。只有這樣,...