使用 JavaScript 查詢陣列中唯一字串


使用 JavaScript 在陣列中查詢唯一字串的難題對於尋求最佳化程式碼的開發人員來說至關重要。JavaScript 能夠處理複雜的資料結構,使程式設計師能夠高效地解決複雜問題。在本文中,我們將深入探討在陣列中識別唯一字串的細節,並使用一些鮮為人知但不可或缺的技術。透過掌握本文中介紹的分步方法,開發人員將獲得篩選陣列的能力,從而識別出與其他字串不同的唯一字串。準備好踏上 JavaScript 語言庫的深度之旅,我們將揭開從陣列中提取唯一字串的秘密。

問題陳述

編寫一個 JavaScript 函式,該函式接收一個字串陣列作為輸入,並返回陣列中唯一存在的字串。唯一字串定義為在給定陣列中僅出現一次的字串。如果沒有唯一字串,則該函式應返回 null。

示例輸入:

const strings = ["apple", "banana", "orange", "banana", "kiwi", "kiwi", "apple"];

示例輸出:

orange

在給定的示例輸入中,字串“orange”在陣列中只出現一次,使其成為唯一字串。因此,該函式應返回“orange”作為輸出。

方法

在本文中,我們將看到幾種不同的方法來解決 JavaScript 中上述問題陳述:

  • 樸素方法

  • 使用雜湊表

方法 1:樸素方法

要使用 JavaScript 中的樸素方法在陣列中查詢唯一字串,首先定義名為 stringArray 的陣列。建立 findUniqueString() 函式,該函式使用迴圈迭代陣列中的每個字串。在迴圈中,使用巢狀迴圈將每個字串與其他每個字串進行比較。如果找到重複項,則將 isDuplicate 標誌設定為 true。在巢狀迴圈之後,檢查當前字串的 isDuplicate 標誌。如果它仍然為 false,則將該字串視為唯一字串。最後,從 findUniqueString() 函式返回唯一字串。

示例

“findUniqueString”函式使用巢狀迴圈搜尋陣列中第一個非重複字串。外部迴圈迭代每個元素,而內部迴圈將當前字串與其他每個字串進行比較。如果找到匹配項,則將“unique”變數設定為 false。如果未找到重複項,則返回唯一字串。如果外部迴圈完成而未找到唯一字串,則返回 null。使用“strings”陣列的函式示例用法將結果分配給“uniqueString”並將其記錄到控制檯。

function findUniqueString(arr) {
   for (let i = 0; i < arr.length; i++) {
      let unique = true;
      for (let j = 0; j < arr.length; j++) {
         if (i !== j && arr[i] === arr[j]) {
            unique = false;
            break;
         }
      }
      if (unique) {
         return arr[i];
      }
   }
   return null; // If no unique string is found
}

// Example usage
const strings = ["apple", "banana", "apple", "banana", "orange"];
const uniqueString = findUniqueString(strings);
console.log(uniqueString);

輸出

以下是控制檯輸出:

orange

方法 2:使用雜湊表

要使用 JavaScript 和雜湊表資料結構在陣列中查詢唯一字串,首先定義 stringArray。建立一個名為 stringCountMap 的空雜湊表。迭代 stringArray 中的每個元素,並檢查它是否作為鍵存在於 stringCountMap 中。如果沒有,則新增它,計數為 1;否則,遞增其計數。迭代之後,我們有一個雜湊表,其中包含每個字串及其出現的次數。最後,迭代雜湊表的鍵,並檢查計數是否為 1。如果是,則該字串是 stringArray 中的唯一字串。

示例

findUniqueString 函式接收一個數組作為輸入,並搜尋在陣列中只出現一次的字串。它維護一個 countMap 變數來跟蹤遇到的每個字串的計數。透過迭代陣列,程式碼更新現有字串的計數,併為新字串建立新的鍵值對。完成後,它檢查 countMap 中計數為 1 的鍵,如果找到則返回唯一字串。如果沒有找到唯一字串,則返回 null。一個示例演示了該函式的使用,方法是使用字串陣列呼叫它並將生成的唯一字串列印到控制檯。

function findUniqueString(arr) {
   const countMap = {};
   for (let i = 0; i < arr.length; i++) {
      const str = arr[i];
      countMap[str] = (countMap[str] || 0) + 1;
   }
   for (const key in countMap) {
      if (countMap[key] === 1) {
         return key;
      }
   }
   return null; // If no unique string is found
}

// Example usage
const strings = ["apple", "banana", "apple", "banana", "orange"];
const uniqueString = findUniqueString(strings);
console.log(uniqueString);

輸出

以下是控制檯輸出:

orange

結論

總之,使用 JavaScript 在陣列中找出唯一的字串可能是一項令人費解的工作,需要仔細檢查和精明的演算法設計。但是,使用適當的方法,例如利用高效的資料結構和採用深奧的技術,可以使我們能夠解開這個神秘的難題。透過深入研究眼前的問題的細節並利用非常規方法的力量,我們可以成功地從冗餘的海洋中提取難以捉摸的寶石。本質上,在陣列中識別唯一字串需要堅韌不拔的精神和對解開編碼領域神秘深處的堅定承諾。

更新於:2023年8月4日

665 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告