JavaScript 陣列(Array)物件的方法
concat()
描述:用於連線兩個或多個數組。該方法不會改變現有的陣列,而僅僅會返回被連線陣列的一個副本。
原型:arrayObject.concat(arrayX,arrayX,......,arrayX)
引數 | 描述 |
---|---|
arrayX | 必需。該引數可以是具體的值,也可以是陣列物件。可以是任意多個。 |
返回值:返回一個新的陣列。該陣列是通過把所有 arrayX 引數新增到 arrayObject 中生成的。如果要進行 concat() 操作的引數是陣列,那麼新增的是陣列中的元素,而不是陣列。
用法:
<script type="text/javascript"> var a = [1, 2, 3]; console.log(a.concat(4, 5)); </script>
輸出:
[1, 2, 3, 4, 5]
join()
描述:用於用於把陣列中的所有元素放入一個字串。元素是通過指定的分隔符進行分隔的。
原型:arrayObject.join(separator)
引數 | 描述 |
---|---|
separator | 可選。指定要使用的分隔符。如果省略該引數,則使用逗號作為分隔符。 |
返回值:返回一個字串。該字串是通過把 arrayObject 的每個元素轉換為字串,然後把這些字串連線起來,在兩個元素之間插入 separator 字串而生成的。
用法:
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" console.log(arr.join()); </script>
輸出:
George,John,Thomas
George.John.Thomas
pop()
描述:用於刪除並返回陣列的最後一個元素。
原型:arrayObject.pop()
返回值:arrayObject 的最後一個元素。
說明:pop() 方法將刪除 arrayObject 的最後一個元素,把陣列長度減 1,並且返回它刪除的元素的值。如果陣列已經為空,則 pop() 不改變陣列,並返回 undefined 值
用法:
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" console.log(arr) console.log(arr.pop()) console.log(arr) </script>
輸出:
["George", "John", "Thomas"]
Thomas
["George", "John"]
push()
描述:向陣列的末尾新增一個或多個元素,並返回新的長度。
原型:arrayObject.push(newelement1,newelement2,....,newelementX)
引數 | 描述 |
---|---|
newelement1 | 必需。要新增到陣列的第一個元素。 |
newelement2 | 可選。要新增到陣列的第二個元素。 |
newelementX | 可選。可新增多個元素。 |
返回值:把指定的值新增到陣列後的新長度。
說明:push() 方法可把它的引數順序新增到 arrayObject 的尾部。它直接修改 arrayObject,而不是建立一個新的陣列。push() 方法和 pop() 方法使用陣列提供的先進後出棧的功能。
註釋:該方法會改變陣列的長度。
提示:要想陣列的開頭新增一個或多個元素,請使用 unshift() 方法。
用法:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr)
console.log(arr.push("James"))
console.log(arr)
</script>
輸出:
["George", "John", "Thomas"]
4
["George", "John", "Thomas", "James"]
reverse()
描述:用於顛倒陣列中元素的順序。
原型:arrayObject.reverse()
註釋:該方法會改變原來的陣列,而不會建立新的陣列。
用法:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr)
console.log(arr.reverse())
</script>
輸出:
["George", "John", "Thomas"]
["Thomas", "John", "George"]
shift()
描述:用於把陣列的第一個元素從其中刪除,並返回第一個元素的值。
原型:arrayObject.shift()
返回值:陣列原來的第一個元素的值。
說明:如果陣列是空的,那麼 shift() 方法將不進行任何操作,返回 undefined 值。請注意,該方法不建立新陣列,而是直接修改原有的 arrayObject。
註釋:該方法會改變陣列的長度。
提示:要刪除並返回陣列的最後一個元素,請使用 pop() 方法。
用法:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr)
console.log(arr.shift())
console.log(arr)
</script>
輸出:
["George", "John", "Thomas"]
George
["John", "Thomas"]
slice()
描述:從已有的陣列中返回選定的元素。
原型:arrayObject.slice(start,end)
引數 | 描述 |
---|---|
start | 必需。規定從何處開始選取。如果是負數,那麼它規定從陣列尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。 |
end | 可選。規定從何處結束選取。該引數是陣列片斷結束處的陣列下標。如果沒有指定該引數,那麼切分的陣列包含從 start 到陣列結束的所有元素。如果這個引數是負數,那麼它規定的是從陣列尾部開始算起的元素。 |
返回值:返回一個新的陣列,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
說明:請注意,該方法並不會修改陣列,而是返回一個子陣列。如果想刪除陣列中的一段元素,應該使用方法 Array.splice()。
註釋:您可使用負值從陣列的尾部選取元素。如果 end 未被規定,那麼 slice() 方法會選取從 start 到陣列結尾的所有元素。
用法:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr)
console.log(arr.slice(1))
console.log(arr.slice(2, 4))
</script>
輸出:
["George", "John", "Thomas"]
["John", "Thomas"]
["Thomas"]
sort()
描述:用於對陣列的元素進行排序。
原型:arrayObject.sort(sortby)
引數 | 描述 |
---|---|
sortby | 可選。規定排序順序。必須是函式。 |
返回值:對陣列的引用。請注意,陣列在原陣列上進行排序,不生成副本。
說明:
如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較。
如果想按照其他標準進行排序,就需要提供比較函式,該函式要比較兩個值,然後返回一個用於說明這兩個值的相對順序的數字。比較函式應該具有兩個引數 a 和 b,其返回值如下:
- 若 a 小於 b,在排序後的陣列中 a 應該出現在 b 之前,則返回一個小於 0 的值。
- 若 a 等於 b,則返回 0。
- 若 a 大於 b,則返回一個大於 0 的值。
用法1:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
console.log(arr)
console.log(arr.sort())
</script>
輸出1:
["George", "John", "Thomas", "James", "Adrew", "Martin"]
["Adrew", "George", "James", "John", "Martin", "Thomas"]
用法2:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
console.log(arr)
console.log(arr.sort())
</script>
輸出2:
["10", "5", "40", "25", "1000", "1"]
["1", "10", "1000", "25", "40", "5"]
用法3:
<script type="text/javascript">
function sortNumber(a, b) {
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
console.log(arr)
console.log(arr.sort(sortNumber))
</script>
輸出3:
["10", "5", "40", "25", "1000", "1"]
["1", "5", "10", "25", "40", "1000"]
splice()
描述:/從陣列中新增/刪除專案,然後返回被刪除的專案。
原型:arrayObject.splice(index,howmany,item1,.....,itemX)
引數 | 描述 |
---|---|
index | 必需。整數,規定新增/刪除專案的位置,使用負數可從陣列結尾處規定位置。 |
howmany | 必需。要刪除的專案數量。如果設定為 0,則不會刪除專案。 |
item1, ..., itemX | 可選。向陣列新增的新專案。 |
註釋:該方法會改變原始陣列。
返回值:
型別 | 描述 |
---|---|
Array | 包含被刪除專案的新陣列,如果有的話。 |
說明:splice() 方法可刪除從 index 處開始的零個或多個元素,並且用引數列表中宣告的一個或多個值來替換那些被刪除的元素。
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的陣列。
用法1:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
console.log(arr)
arr.splice(2, 0, "William")
console.log(arr)
// 從第2個位置,刪除0個元素,新增一個"William"
</script>
輸出1:
["George", "John", "Thomas", "James", "Adrew", "Martin"]
["George", "John", "William", "Thomas", "James", "Adrew", "Martin"]
用法2:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
console.log(arr)
arr.splice(2, 1, "William")
console.log(arr)
// 從第2個位置,刪除1個元素,新增一個"William"
</script>
輸出2:
["George", "John", "Thomas", "James", "Adrew", "Martin"]
["George", "John", "William", "James", "Adrew", "Martin"]
用法3:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
console.log(arr)
arr.splice(2, 3, "William")
console.log(arr)
// 從第2個位置,刪除3個元素,新增一個"William"
</script>
輸出3:
["George", "John", "Thomas", "James", "Adrew", "Martin"]
["George", "John", "William", "Martin"]
toString()
描述:把陣列轉換為字串,並返回結果。
原型:arrayObject.toString()
返回值:arrayObject 的字串表示。返回值與沒有引數的 join() 方法返回的字串相同。
說明:當陣列用於字串環境時,JavaScript 會呼叫這一方法將陣列自動轉換成字串。但是在某些情況下,需要顯式地呼叫該方法。
註釋:陣列中的元素之間用逗號分隔。
用法:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr.toString())
</script>
輸出:
George,John,Thomas
toLocaleString()
描述:把陣列轉換為本地字串。
原型:arrayObject.toLocaleString()
返回值:arrayObject 的本地字串表示。
說明:首先呼叫每個陣列元素的 toLocaleString() 方法,然後使用地區特定的分隔符把生成的字串連線起來,形成一個字串。
用法:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr.toLocaleString())
</script>
輸出:
George, John, Thomas
unshift()
描述:向陣列的開頭新增一個或更多元素,並返回新的長度。
原型:arrayObject.unshift(newelement1,newelement2,....,newelementX)
返回值:arrayObject 的新長度。
說明:unshift() 方法將把它的引數插入 arrayObject 的頭部,並將已經存在的元素順次地移到較高的下標處,以便留出空間。該方法的第一個引數將成為陣列的新元素 0,如果還有第二個引數,它將成為新的元素 1,以此類推。
請注意,unshift() 方法不建立新的建立,而是直接修改原有的陣列。
註釋:該方法會改變陣列的長度。
注意:unshift() 方法無法在 Internet Explorer 中正確地工作!
提示:要把一個或多個元素新增到陣列的尾部,請使用 push() 方法。
用法:
<script type="text/javascript">
var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr)
console.log(arr.unshift("William"))
console.log(arr)
</script>
輸出:
["George", "John", "Thomas"]
4
["William", "George", "John", "Thomas"]
valueOf()
描述:valueOf() 方法返回 Array 物件的原始值。該原始值由 Array 物件派生的所有物件繼承。valueOf() 方法通常由 JavaScript 在後臺自動呼叫,並不顯式地出現在程式碼中。
原型:arrayObject.valueOf()
用法:
<script type="text/javascript">
var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr.valueOf())
</script>
輸出:
["George", "John", "Thomas"]