天天看點

Javascript數組對象的方法和屬性

  數組對象的方法和屬性

數組對象最常用的屬性之一就是length屬性,它傳回比數組中最後一個數組項索引大1的索引。舉個例子,如果你正在處理一個數組,它擁有索引為0,1,2,3的元素,length屬性就是4——它是非常有用的,如果你想添加另外的元素。

Array對象提供了許多方法用來操作數組,包括從數組中截取一部分元素的方法,或者把兩個數組連接配接到一起。下面我們會看一下連接配接,截取和排序的方法。

2.1.1.1.截取一個數組的一段

slice()方法對于一個Array對象就如同substring()方法對于一個字元串對象。你隻要簡單地告訴這個方法你想要截取哪些元素。它是非常有用的,舉個例子,如果你想要一個使用URL傳遞的資訊片段。

    slice()方法擁有兩個參數:片段中第一個元素的索引,它包含在這個片段中;最後一個元素的索引,片段中不會包含它。為了通路一個總共包含5個值的數組中的第二、第三和第四個值,我們是用索引1和4:

<html>

<body>

<script type="text/javascript">

// Create and initialize the array

var fullArray = new Array( "One", "Two", "Three",

"Four", "Five" );

// Slice from element 1 to element 4 and store

// in new variable sliceOfArray

var sliceOfArray = fullArray.slice( 1, 4 );

// Write out new ( zero-based ) array of 3 elements

document.write( sliceOfArray[0] + "<br>" );

document.write( sliceOfArray[1] + "<br>" );

document.write( sliceOfArray[2] + "<br>" );

</script>

</body>

</html>

這個新數組存儲數字是從0開始的,是以片段的索引0、1和2會給我們如下的結果:

Two

Three

Four

最初的數組并未受影響,但是如果需要,你可以通過設定它為slice()方法傳回的結果,覆寫變量中的這個數組對象:

fullArray = fullArray.slice( 1, 4 );

2.1.1.2.連接配接兩個數組

Array對象的concat()方法允許我們用來連接配接數組。我們可以使用這個方法把2個或多個數組連接配接到一起,每個新數組在前面數組結束的地方開始。這裡,我們連接配接了三個數組:arrayOne、 arrayTwo和arrayThree:

var arrayOne = new Array( "One", "Two", "Three",

var arrayTwo = new Array( "ABC", "DEF", "GHI" );

var arrayThree = new Array( "John", "Paul", "George",

"Ringo" );

var joinedArray = arrayOne.concat( arrayTwo, arrayThree );

document.write( "joinedArray has " + joinedArray.length + 

" elements<br>" );

document.write( joinedArray[0] + "<br>" )

document.write( joinedArray[11] + "<br>" )

這個新數組,joinedArray,擁有12個資料項。這個數組中的資料項和它們在以前的數組中是一樣的;它們隻是被簡單地連接配接到一起。原來的數組仍然沒有改變。

2.1.1.3.把一個數組轉換成一個字元串或做相反的轉換

當你想循環周遊元素或選取某些元素的時候,把資料放到一個數組裡是非常便利的。可是,當你需要把資料傳送到其他地方的時候,把資料轉換成一個字元串可能是個非常好的主意。你可以通過循環周遊數組并把每個元素的值加到一個字元串裡來實作。可是沒有必要那麼去做,因為Array對象有一個叫join()的方法可以來為你完成這個功能。這個方法需要一個字元串作為參數。這個字元串會被添加到每個元素的中間。

var lineUp=arrayThree.join( ', ' );

alert( lineUp );

作為結果的字元串lineUp的值是 "John, Paul, George, Ringo"。與()相反的操作是split(),它是一個可以把字元串轉換為數組的一個方法。

var lineUp="John, Paul, George, Ringo";

var members=lineUp.split( ', ' );

alert( members.length );

2.1.1.4.把一個數組排序

這個sort()方法允許我們把數組中的資料項按字母或者數字順序進行排序:

var arrayToSort = new Array( "Cabbage", "Lemon",

"Apple", "Pear", "Banana" );

var sortedArray = arrayToSort.sort( );

document.write( sortedArray[0] + "<br>" );

document.write( sortedArray[1] + "<br>" );

document.write( sortedArray[2] + "<br>" );

document.write( sortedArray[3] + "<br>" );

document.write( sortedArray[4] + "<br>" );

資料項會按如下的方式排序:

Apple

Banana

Cabbage

Lemon

Pear

可是,如果你把其中的一個字母小寫,例如Apple中的A字母,那麼你會得到一個完全不同的結果。這個排序是按照嚴格的數學順序——ASCII碼中的字元編号進行的,而不是像人那樣會按照單詞進行排序。

如果想改變已經排序好的元素的顯示順序,你可以使用reverse()方法來把字母表中的最後的字母作為第一個元素來顯示:

var arrayToSort = new Array( "Cabbage", "Lemon", 

var reverseArray = sortedArray.reverse( );

document.write( reverseArray[0] + "<br />" );

document.write( reverseArray[1] + "<br />" );

document.write( reverseArray[2] + "<br />" );

document.write( reverseArray[3] + "<br />" );

document.write( reverseArray[4] + "<br />" );

這個作為結果的序列現在是按反序進行排列的:

本文轉自 牛海彬 51CTO部落格,原文連結:http://blog.51cto.com/newhappy/76825,如需轉載請自行聯系原作者

下一篇: free

繼續閱讀