標籤:
JavaScript 數組操作函數(部分)--轉載+格式整理
今天看了一篇文章,主要講的對常用的Js操作函數:push,pop,join,shift,unshift,slice,splice,concat的總結。身為一個有點完美主義的強迫症患者來說,原文的格式,差點殺死我。so,這篇文章就出來了……原文:傳送門。
一、push 和 pop
這兩個函數都是對數組從尾部進行壓入或彈出操作。
push(arg1,arg2,...)可以每次壓入一個或多個元素,並返回更新後的數組長度。
注意:如果參數也是數組的話,則是將全部數組當做一個元素壓入到原本的數組裡面去。
pop() 函數則每次只會彈出結尾的元素,並返回彈出的元素,若是是對空組數調用 pop() 則返回undefined。
var oldArr=[1,2,3];alert(oldArr.push(4,[5,6]))//這裡只會將[5,6]當做一個元素來策畫,返回更新後的數組長度5//此時 oldArr = [1,2,3,4,[5,6]]oldArr.pop()//這裡彈出最後一個元素[5,6],而不是6//此時 oldArr = [1,2,3,4]oldArr.pop()-->4oldArr.pop()-->3oldArr.pop()-->2oldArr.pop()-->1alert(oldArr.pop())-->undefined(空數組彈出)
二、
unshift 和 shift
unshift() 方法可向數組的開頭添加一個或更多元素,並返回新的長度。unshift() 方法將把它的參數插入 arrayObject 的頭部,並將已經存在的元素順次地移到較高的下標處,以便留出空間。該方法的第一個參數將成為數組的新元素 0,如果還有第二個參數,它將成為新的元素 1,以此類推。
請注意,unshift() 方法不建立新的建立,而是直接修改原有的數組。另外在 Internet Explorer 瀏覽器中 unshift() 無法執行!
如下樣本,我們將建立一個數組,並把一個元素添加到數組的開頭,並返回數組的新長度:
<script type="text/javascript"> var arr = new Array() arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr.join() + "<br />") document.write(arr.unshift("William") + "<br />") document.write(arr.join())</script>
輸出:
George,John,Thomas4William,George,John,Thomas
shift() 用於將數組的第一個元素從原數組中刪除,並返回第一個元素的值(即被刪除的元素的值)。
注意:若數組是空的,那麼 shift() 將不進行任何操縱,直接返回 undefined 值。另外該方法也不建立新數組,而是直接修改原有的 arrayObject。
樣本:在本例中,我們將建立一個數組,並刪除數組的第一個元素:
<script type="text/javascript"> var arr = new Array arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr.join() + "<br />") document.write(arr.shift() + "<br />") document.write(arr.join()) </script>
//輸出:
George,John,Thomas George John,Thomas
三、join()
作用是將數組各個元素是通過指定的分隔字元進行串連成為一個字串。其作用和toString()相同。
文法:
arrayObject.join(separator)
參數 separator 可選。指定要使用的分隔字元。如果省略該參數,則使用逗號作為分隔字元。
四、
slice()
該方法可從已有的數組中返回選定的元素
文法:
arrayObject.slice(start,end)
傳回值:
返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
注意:您可使用負值從數組的尾部選取元素。如果 end 未被規定,那麼 slice() 方法會選取從 start 到數組結尾的所有元素。
五、splice()
該方法用於插入、刪除或替換數組的元素。
文法:
arrayObject.splice(index,howmany,element1,.....,elementX)
傳回值:
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
說明:
splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
需要注意的是 splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改。
例子 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" document.write(arr.join() + "<br />") arr.splice(2,0,"William") document.write(arr.join() + "<br />")</script>
輸出:
George,John,Thomas,James,Adrew,MartinGeorge,John,William,Thomas,James,Adrew,Martin
例子 2
在本例中我們將刪除位元於 index 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" document.write(arr.join() + "<br />") arr.splice(2,1,"William") document.write(arr.join())</script>
輸出:
George,John,Thomas,James,Adrew,MartinGeorge,John,William,James,Adrew,Martin
例子 3
在本例中我們將刪除從 index 2 ("Thomas") 開始的三個元素,並添加一個新元素 ("William") 來替代被刪除的元素:
<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" document.write(arr.join() + "<br />") arr.splice(2,3,"William") document.write(arr.join())</script>
輸出:
George,John,Thomas,James,Adrew,MartinGeorge,John,William,Martin
六、contact
()
該方法用於串連兩個或多個數組。它不會改變現有的數組,而僅僅會返回被串連數組的一個副本。
文法:
arrayObject.concat(arrayX,arrayX,......,arrayX)
JavaScript 數組操作函數--轉載+格式整理