Js數組的操作push,pop,shift,unshift等方法詳細介紹_javascript技巧
js中針對陣列操作的方法還是比較多的,今天突然想到來總結一下,也算是溫故而知新吧。不過不會針對每個方法進行講解,我只是選擇其中的一些來講。
首先來講一下push和pop方法,這兩個方法只會對數組從尾部進行壓入或彈出,而且是在原數組進行操作,任何的改動都是會影響到操作的數組。 push(args)可以每次壓入多個元素,並傳回更新後的陣列長度。 pop()函數每次只會彈出最後一個結尾的元素,並傳回彈出的元素,如果是對空組數呼叫pop()則傳回undefined。 如果參數是數組則是將整個數組當作一個元素壓入原來的數組當中。並不會產生類似concat合併數組時產生的“拆分現象”,下面看例子
例1:
var oldArr=[1,2,3];
alert(oldArr.push(4,[5,6]))–>5(這裡只會將[5,6]當做一個元素來計算,返回更新後的數組長度5)
此時oldArr –>[1,2,3,4,[5,6]]
alert(oldArr.pop())–>[5,6](這裡彈出最後一個元素[5,6],而不是6 )
此時oldArr–>[1,2,3,4]
oldArr.pop()–>4
oldArr.pop()–>3
oldArr.pop()–> 2
oldArr.pop()–>1
oldArr.pop()–>undefined(空數組彈出)
現在講完push和pop再看一下unshift和shift
這兩個方法都是透過對陣列的頭部進行的操作,其他基本跟push和pop類似,但是在IE中unshift方法返回的是undefined
例2:
var oldArr2 =[1,2];
oldArr2.unshift(3)–>undefined
此時oldArr2為–>[3,1,2]
oldArr2.shift()–>3
此時oldArr2為[1,2]
接下來看一下功能強大一點的splice,利用其可以進行數組隨意位置的元素添加,刪除,其操作也是在原有
數組上修改
splice(start,deleteCnt,args) 中的start表示開始操作下標,deleteCnt表示從開始下標開始(包括該元素)要刪除的元素個數,刪除操作返回刪除的元素。 args表示用來替換刪除掉的那些元素(可以有多個參數),start和deleteCnt必須為數字,如果不是數字嘗試轉換,轉換失敗當做0來處理。 splice必須至少有一個start元素,否則不做任何操作。 deleteCnt不存在表示刪除start及後面的全部元素(IE下,取0不做刪除)。 start可以為負數,表示從陣列右邊結尾開始計算。 deleteCnt如果為負數不做刪除,因為不可能刪除負個元素。
好了解釋就到這邊現在看一下例子,透過例子或許可以更好的理解
例3:
var oldArr3=[1,2];
oldArr3.splice()–>”"(返回空的字串,不做任何操作,操作後oldArr3–>[1,2])
oldArr3.splice(“”)–>[1, 2](“”嘗試轉換為數字失敗返回0,所以刪除1,2,操作後oldArr3–>[],但是IE下有點噁心,不做任何操作)
oldArr3.splice(“1a”)– >同上
odlArr3.splice(0,2)–>[1,2](「從下標0的元素開始,刪除兩個元素1,2因此刪除後oldArr3–>[])
oldArr3 .splice(0,-1)–>”"(從0下標開始刪除-1個元素,故等於沒做任何操作,操作後oldArr3–>[1,2])
oldArr3.splice(1 ,1)–>2(從下標1 開始刪除1個元素,即刪除2,所以刪除後oldArr3–>[1])
oldArr3.splice(1,4)–>2(從下標1開始刪除4個元素,1開始只有1個元素,故刪除2,所以刪除後oldArr3–>[1])
oldArr3.splice(-1,0,3)–>”"(從下標- 1即2元素開始刪除0個元素,然後加入元素3,所以操作後oldArr3–>[1,3,2])
oldArr3.splice(-1,1,3)–>2(從小標- 1即2元素開始刪除1個元素,然後加入元素3,操作後為oldArr3–>[1,3])
OK接下來開始講concat,這個方法用來連接兩個或多個陣列,該陣列不會改變原來的陣列只會傳回新的一個陣列。 🎜>:
var oldArr4=[1,2];
oldArr4.concat(3,4)–>[1,2,3,4] oldArr4.concat(3,4,[5 ,6])–>[1,2,3,4,5,6](這邊加的是[5,6]中的元素5和元素6) oldArr4.concat(3,[4, [5,6]])–>[1,2,3,4,[5,6]](這邊最裡層的元素[5,6]整個用來添加,而不是拆開)
下面來講數組中的排序方法sort
sort(function)是針對原數組進行的排序,不會產生新的陣列。預設sort()不帶參數時按照陣列中的元素轉換成字串進行比較,比較的時候按照字元在字元編碼中的順序進行排序,每個字元都有一個唯一的編碼與其對應。
且看下面例子
var oldArr5=[3,1,5,7,17] 看這個一般觀念上以為對oldArr5排序時oldArr5.sort()會按照數字從小到大排序即回傳[1,3,5,7,17],但看一下結果其實不然回傳的是[1,17,3,5,7] 因為比較的時候都會轉成字串。然後對字串進行一個個的比較如果第一個字元相同則比較第二個,否則直接傳回比較結果,因為”17″
sort(function)方法除了預設的無參外還可以傳入自訂的排序方法,這樣排序的結果完全可以由自己來控制了,想怎麼排就怎麼排,是不是很爽啊,呵呵。 一般自訂的function比較函數,包含兩個參數分別代表用來比較的左元素和右元素。然後透過一定方式回傳一個結果,如果傳回值大於0表示交換左右元素,如果傳回值小於0或等於0則表示不不會交換左右元素。現在來看看範例
例5:
依照數字由大到小排列原有陣列
var oldArr5=[3,1,5,7,17]; //初始陣列
function mySort(left,right) {
if(left
else{
return -1;}//如果左邊元素大於等於右邊元素不做交換
}
當然上面的方法可以簡化為funaction mySort(left,right){ return right-left;}
//依照偶數在前奇數在後排序
var oldArr6=[3,6,7, 18];//初始陣列
function mySort2(left,right){
if(left%2==0)return -1;//若左邊元素為偶數則不交換
if(right %2==0)return 1; //如果右邊元素為偶數則交換
return 0; //不交換
}
最後的slice不多講,只用來截取原數組中的部分元素,回傳一個新的數組,原始數組不會改變,其操作方式跟string的slice類似
var oldArr7=[1,2,3,4];
oldArr7.slice(0)–>[1,2,3,4]
oldArr7.slice(0,2)–>[1,2]
oldArr7.slice(0,0)–>[]
oldArr7.slice(0,-1)–>[1, 2,3]
oldArr7.slice(-3,-1)–>[2,3]
oldArr4.slice(-1,-3)–[]

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP是一種廣泛使用的伺服器端腳本語言,可以透過許多不同的方式進行陣列操作。本文將介紹我們編寫PHP程式碼時的最佳實踐,幫助您建立更有效率、更美觀、更可讀的程式碼。 1.使用陣列函數而不是手動循環最好使用PHP數組函數,而不是手動循環數組來移動、操作或修改資料。 PHP數組函數執行較快,具有更好的可讀性和可維護性。以下是一些常用的PHP數組函數:array_push(

什麼是PHP? PHP代表超文本預處理器,是一種用於Web開發的熱門伺服器端腳本語言。它旨在創建動態和互動式網頁。 PHP嵌入在HTML程式碼中並在伺服器上執行,產生傳送到客戶端瀏覽器的HTML輸出。憑藉其簡單易學的語法,PHP允許開發人員建立動態網站、處理表單資料、與資料庫互動以及執行各種伺服器端任務。它擁有龐大的庫和框架生態系統,可增強其功能並使開發人員能夠創建強大且可擴展的Web應用程式。 PHP受到託管提供者的廣泛支持,使其成為Web開發專案的首選。如何在PHP中將字串放入陣列並按換行符號分割方

在PHP8.0版本中,數字組合併操作是經過了改進的。這個改進主要針對的是數組資料類型的合併操作。在先前的版本中,PHP提供的數組合併操作是使用“+”符號實現的。但是,這種方法存在一些問題。如果兩個數組中包含相同的鍵,那麼第二個數組的鍵值將會覆蓋第一個數組中的鍵值,如果需要把兩個數字組合在一起,那麼就需要技巧地使用array_merge()函數了。現在,在PHP

PHP8.0中陣列中的危險操作:array_splice()在PHP程式設計中,陣列是一個非常常用的資料結構,它允許我們在一個變數中儲存多個值。而array_splice()函數則是一個處理數組的方法,它可以刪除或替換數組中的元素。但是,在PHP8.0中,array_splice()函數卻有一些危險操作,如果使用不當,將會導致一些嚴重的問題。本文將為大家詳細介紹

在PHP中,陣列是一種非常常見且有用的資料結構。 PHP提供了許多不同的函數和方法來操作和處理這些陣列。其中一個非常有用的函數是array_diff()。本文將詳細討論此函數。 array_diff()函數的基本用法非常簡單。此函數接受兩個或多個數組作為參數,並傳回一個新數組,其中包含第一個數組中存在,但其他數組中不存在的元素。下面是一個範例:$array1=

使用PHP自訂函數可擴展數組交集和並集功能,自訂交集函數允許按鍵或值查找交集,而自訂並集函數按鍵或值查找並集。這使您能夠基於特定需求靈活操作陣列。

隨著網路和電子郵件的普及,人們越來越依賴電子郵件通訊。 PHP作為一種流行的腳本程式語言,也為電子郵件操作提供了強大的支援。其中,IMAP和POP協定是PHP中郵件操作的兩種常用協定。以下就來詳細介紹一下它們在PHP的應用。一、IMAP協定IMAP(InternetMessageAccessProtocol)協定是在郵件客戶端和郵件伺服器之間建立的

PHP數組鍵值互換的最佳方案:使用內建的array_flip()函數,時間複雜度為O(n)。對於較大的數組,array_flip()的效能優勢更明顯。實戰案例:可使用array_flip()將購物車中商品名稱陣列轉換為商品數量陣列。
