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)–[]

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

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

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。