使用 JavaScript 自定義函式從陣列中刪除重複項
在本問題陳述中,我們的目標是編寫一個演算法,使用 Javascript 功能,透過函式從陣列中刪除重複項。
理解問題陳述
在上述問題陳述中,我們必須建立一個函式,該函式可以接受一個數組作為引數,並返回一個新陣列,該新陣列儲存來自給定輸入陣列的唯一項,而不包括相同的項。例如 - 假設我們有一個數組 [0, 0, 2, 2, 3, 3],那麼刪除重複數字後,我們將得到一個新陣列 [0, 2, 3]。
給定問題的邏輯
該演算法將迭代輸入陣列中的元素,然後如果該項尚未新增,則將其新增到新建立的唯一項陣列中。我們將使用 Javascript 的 map 函式來提供有效的 時間複雜度。
演算法
步驟 1:定義一個函式,從陣列中刪除重複數字並返回一個包含唯一元素的新陣列作為輸出。
步驟 2:建立一個新陣列來儲存輸入陣列的唯一元素作為結果陣列。
步驟 3:我們將使用 map 方法來儲存之前在陣列中看到的項。
步驟 4:使用 for 迴圈迭代輸入陣列項。
步驟 5:檢查條件:陣列項是否之前已出現。如果是,則將其設定為 true 並將所有唯一項推入結果陣列。
示例
//function to extract the duplicate items from the array
function removeDuplicateItems(array) {
var result = [];
var saw= new Map();
for (let i = 0; i < array.length; i++) {
if (!saw.has(array[i])) {
saw.set(array[i], true);
result.push(array[i]);
}
}
return result;
}
const array = [11, 21, 21, 31, 41, 41, 51];
console.log(removeDuplicateItems(array));
輸出
[ 11, 21, 31, 41, 51 ]
複雜度
演算法的時間複雜度為 O(n),其中 n 是輸入陣列的長度。因為我們遍歷了陣列項以檢查陣列中的重複項。
結論
在上面的函式中,我們實現了一個從陣列中刪除相同項的程式碼。此任務的時間複雜度為 O(n),這取決於陣列的大小。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP