1. 程式人生 > >【JavaScript】 陣列中去掉重複數字

【JavaScript】 陣列中去掉重複數字


JavaScript中陣列出現重複數字該如何刪除呢?請看下面程式碼(註釋很詳細),為了更好地理解我畫了個圖:


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		
		<title>問題:陣列中有重複數字怎麼去掉?</title>
		
		<script type="text/javascript">
			
			//定義一個長度為9的陣列
			
			var a=[1,3,1,1,2,4,3,5,5];
			
			console.log(a);
			
			//該迴圈遍歷了a陣列的元素
			
			for(var i=0;i<a.length;i++){
				
				//該迴圈遍歷了後面要比較的元素
				
				for(var j=i+1;j<a.length;j++){
					
		//判斷遍歷出來的元素時候和比較的元素相等,如果相等,則刪除後面的元素
		
					if(a[i]==a[j]){
						
					a.splice(j,1);
					
					j--;
					
//假設陣列是這樣的var a =[1,2,1,1,3]我開始進行比較,然後刪除了索引為2的元素
//但是剛才刪除了一個元素導致後面的元素索引會往前移一
//就變成這樣a=[1,2,1,3]所以經過j++後,索引為3的元素往前移1索引就變成2了,索引為2的元素為1
//這樣還是存在兩個1
//所以為了防止刪除後還出現相同的元素,所以我們j--,這樣j++後我們還可以對當前索引再比較一次
	
					}
					
				}
			}
			
	console.log(a)
	
		</script>
	</head>
	<body>
	</body>
</html>