Javascript學習筆記之數組的建構子_基礎知識
陣列的建構子
由於陣列的建構子在處理參數時的不確定性,因此強烈建議使用 []
符號來建立一個新陣列。
<code>[1, 2, 3]; // Result: [1, 2, 3]<br>new Array(1, 2, 3); // Result: [1, 2, 3]<br>[3]; // Result: [3]<br>new Array(3); // Result: []<br>new Array('3') // Result: ['3']</code>
當只有一個參數被傳遞到數組的建構子中,而這個參數還是一個數字時,建構子將會傳回一個元素值為undefined
的數組,而且這個數組的length
屬性被設定為傳入建構函數的數字參數。但實際上上新數組的索引並沒有被初始化。
這種用法只有在很少數情況下會被使用,例如循環字串時,這種用法可以避免使用一個循環。
<code>new Array(count + 1).join(stringToRepeat);</code>
總結
綜上所述,我們應該盡量使用 []
來建立新函數,而不是數組的建構函數,這樣程式碼會有更好的可讀性。
資料常見操作
因為這篇文章的原文比較短,所以我打算把一些常用的陣列操作方法也總結一下:
加入元素
1.push
- 將一個或多個新元素加入陣列結尾,並傳回陣列新長度。
2.unshift
- 將一個或多個新元素加入陣列開始,陣列中的元素自動後移,傳回陣列新長度。
3.splice
- 將一個或多個新元素插入到陣列的指定位置,插入位置的元素自動後移,傳回 []
。
刪除元素
1.pop
- 移除最後一個元素並傳回該元素值。
2.shift
- 移除最前一個元素並傳回該元素值,陣列中元素自動前移。
3.splice
- 刪除從指定位置 deletePos
開始的指定數量 deleteCount
的元素,陣列形式傳回所移除的元素。 (注意與添加元素時參數的差異)
其他操作
1.join
- 回傳字串,這個字串將陣列的每一個元素值連接在一起,中間用 separator
參數隔開。
2.slice
- 方法用於返回數組中一個片段或子數組,如果只寫一個參數返回參數到數組結束部分,如果參數出現負數,則從數組尾部計數,如果start
大於end
傳回空數組,slice
不會改變原數組,而是傳回一個新的數組。
3.concat
- 將多個陣列(也可以是字串,或是陣列和字串的混合)連接為陣列,傳回連接好的新的陣列。
4.reverse
- 反轉元素(最前面的排到最後、最後的排到最前),傳回修改後的陣列。
5.sort
- 將陣列元素排序,傳回修改後的陣列。當沒有參數的時候會依照字母表升序排序,也可以傳一個排序方法進去。

熱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)

使用foreach循環移除PHP數組中重複元素的方法如下:遍歷數組,若元素已存在且當前位置不是第一個出現的位置,則刪除它。舉例而言,若資料庫查詢結果有重複記錄,可使用此方法移除,得到不含重複記錄的結果。

PHP中深度複製數組的方法包括:使用json_decode和json_encode進行JSON編碼和解碼。使用array_map和clone進行深度複製鍵和值的副本。使用serialize和unserialize進行序列化和反序列化。

PHP數組鍵值翻轉方法效能比較顯示:array_flip()函數在大型數組(超過100萬個元素)下比for迴圈效能更優,耗時更短。手動翻轉鍵值的for迴圈方法耗時相對較長。

多維數組排序可分為單列排序和嵌套排序。單列排序可使用array_multisort()函數依列排序;巢狀排序需要遞歸函數遍歷陣列並排序。實戰案例包括按產品名稱排序和按銷售量和價格複合排序。

PHP的array_group_by函數可依鍵或閉包函數將陣列中的元素分組,傳回關聯數組,其中鍵為組名,值是屬於該組的元素數組。

在PHP中執行陣列深度複製的最佳實踐是:使用json_decode(json_encode($arr))將陣列轉換為JSON字串,然後再轉換回陣列。使用unserialize(serialize($arr))將陣列序列化為字串,然後將其反序列化為新陣列。使用RecursiveIteratorIterator迭代器對多維數組進行遞歸遍歷。

PHP的array_group()函數可用來按指定鍵對陣列進行分組,以尋找重複元素。函數透過以下步驟運作:使用key_callback指定分組鍵。可選地使用value_callback確定分組值。對分組元素進行計數並識別重複項。因此,array_group()函數對於尋找和處理重複元素非常有用。

PHP陣列去重演算法的複雜度:array_unique():O(n)array_flip()+array_keys():O(n)foreach迴圈:O(n^2)
