在我們的日常編程中,處理數(shù)字是一項(xiàng)很普遍的任務(wù)。當(dāng)我們需要從一組數(shù)字中找出不重復(fù)的數(shù)字時(shí),使用JavaScript可以輕松解決這個(gè)問(wèn)題。在本文中,我們將會(huì)介紹兩種不同的JavaScript方法來(lái)實(shí)現(xiàn)這一目標(biāo)。
首先,我們將來(lái)看看最常用的方法。這種方法使用了一個(gè)數(shù)組來(lái)存儲(chǔ)每個(gè)數(shù)字的出現(xiàn)次數(shù)。然后,我們將輸入的數(shù)字和數(shù)組中的數(shù)字進(jìn)行比較,如果發(fā)現(xiàn)輸入的數(shù)字已經(jīng)存在于數(shù)組中,則增加該數(shù)字的出現(xiàn)次數(shù)。最后,我們可以在數(shù)組中查找那些只出現(xiàn)一次的數(shù)字。
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]
上述代碼中,我們定義了一個(gè)名為findUniqueNumbers
的函數(shù),它的參數(shù)是一組數(shù)字。在函數(shù)中,我們首先創(chuàng)建了一個(gè)名為counts
的空對(duì)象,用于存儲(chǔ)每個(gè)數(shù)字的出現(xiàn)次數(shù)。然后,我們遍歷輸入的數(shù)字?jǐn)?shù)組,并在counts
對(duì)象中增加每個(gè)數(shù)字的出現(xiàn)次數(shù)。最后,我們遍歷counts
對(duì)象,查找那些只出現(xiàn)一次的數(shù)字,并將它們插入到名為uniqueNumbers
的數(shù)組中。
現(xiàn)在,我們來(lái)介紹第二種方法,它使用了JavaScript的Set集合。這種方法的基本思想是,將輸入數(shù)組轉(zhuǎn)換為一個(gè)Set對(duì)象,并使用迭代器遍歷Set對(duì)象。在遍歷Set對(duì)象時(shí),我們可以從中找到那些只出現(xiàn)一次的數(shù)字。
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]
上述代碼中,我們定義了一個(gè)名為findUniqueNumbersUsingSet
的函數(shù),它的參數(shù)是一組數(shù)字。在函數(shù)中,我們首先創(chuàng)建了一個(gè)名為uniqueNumbers
的Set對(duì)象。在循環(huán)遍歷輸入數(shù)組時(shí),我們使用indexOf
和lastIndexOf
方法來(lái)判斷當(dāng)前數(shù)字是否為唯一的數(shù)字。如果是唯一的數(shù)字,我們將它插入到uniqueNumbers
集合中。
綜上所述,我們已經(jīng)學(xué)習(xí)了兩種不同的JavaScript方法來(lái)查找一組數(shù)字中的不重復(fù)數(shù)字。我們可以通過(guò)數(shù)組計(jì)數(shù)或使用Set集合來(lái)查找這些數(shù)字。每種方法都有其優(yōu)缺點(diǎn),具體選擇哪一種方法取決于具體應(yīng)用場(chǎng)景和性能要求。