在我們的日常編程中,處理數字是一項很普遍的任務。當我們需要從一組數字中找出不重復的數字時,使用JavaScript可以輕松解決這個問題。在本文中,我們將會介紹兩種不同的JavaScript方法來實現這一目標。
首先,我們將來看看最常用的方法。這種方法使用了一個數組來存儲每個數字的出現次數。然后,我們將輸入的數字和數組中的數字進行比較,如果發現輸入的數字已經存在于數組中,則增加該數字的出現次數。最后,我們可以在數組中查找那些只出現一次的數字。
function findUniqueNumbers(numbers) { var counts = {}; for (var i = 0; i < numbers.length; i++) { var num = numbers[i]; counts[num] = counts[num] ? counts[num] + 1 : 1; } var uniqueNumbers = []; for (num in counts) { if (counts[num] === 1) { uniqueNumbers.push(Number(num)); } } return uniqueNumbers; } var numbers = [1, 2, 3, 4, 5, 6, 1, 3, 5, 7, 9, 7, 8]; var uniqueNumbers = findUniqueNumbers(numbers); console.log(uniqueNumbers); // [2, 4, 6, 8, 9]
上述代碼中,我們定義了一個名為findUniqueNumbers
的函數,它的參數是一組數字。在函數中,我們首先創建了一個名為counts
的空對象,用于存儲每個數字的出現次數。然后,我們遍歷輸入的數字數組,并在counts
對象中增加每個數字的出現次數。最后,我們遍歷counts
對象,查找那些只出現一次的數字,并將它們插入到名為uniqueNumbers
的數組中。
現在,我們來介紹第二種方法,它使用了JavaScript的Set集合。這種方法的基本思想是,將輸入數組轉換為一個Set對象,并使用迭代器遍歷Set對象。在遍歷Set對象時,我們可以從中找到那些只出現一次的數字。
function findUniqueNumbersUsingSet(numbers) { var uniqueNumbers = new Set(); for (var i in numbers) { if (numbers.indexOf(numbers[i]) == numbers.lastIndexOf(numbers[i])) { uniqueNumbers.add(numbers[i]); } } return Array.from(uniqueNumbers); } var numbers = [1, 2, 3, 4, 5, 6, 1, 3, 5, 7, 9, 7, 8]; var uniqueNumbers = findUniqueNumbersUsingSet(numbers); console.log(uniqueNumbers); // [2, 4, 6, 8, 9]
上述代碼中,我們定義了一個名為findUniqueNumbersUsingSet
的函數,它的參數是一組數字。在函數中,我們首先創建了一個名為uniqueNumbers
的Set對象。在循環遍歷輸入數組時,我們使用indexOf
和lastIndexOf
方法來判斷當前數字是否為唯一的數字。如果是唯一的數字,我們將它插入到uniqueNumbers
集合中。
綜上所述,我們已經學習了兩種不同的JavaScript方法來查找一組數字中的不重復數字。我們可以通過數組計數或使用Set集合來查找這些數字。每種方法都有其優缺點,具體選擇哪一種方法取決于具體應用場景和性能要求。