2013-12-12 16 views
7

私は、順序付けられていない数字のリストをjavascriptでループしようとしています。この関数はすべての数値を配列に格納する必要がありますので、重複する数値を見つけることができます。どんな助けもありがとう。これまでのところ私が持っている:javascriptを使ってリスト項目をループし、結果を配列に返します

<html> 
<head> 
    <title></title> 
</head> 
<body> 
<ul id="ul"> 
    <li>6</li> 
    <li>3</li> 
    <li>1</li> 
    <li>4</li> 
    <li>7</li> 
    <li>4</li> 
    <li>2</li> 
    <li>8</li> 
    <li>9</li> 
    <li>2</li> 
</ul> 
</body> 
</html> 

とJavaScriptの開始:

(function(){ 

      var nums = document.getElementById("ul"); 
      var listItem = nums.getElementsByTagName("li"); 

      var newNums = ""; 

      var dups = function(){ 
      for (var i = 0; i < listItem.length; i++){ 

      } 

      }; dups(); 

      })(); 

私が何をしないのですか?

答えて

23
var nums = document.getElementById("ul"); 
var listItem = nums.getElementsByTagName("li"); 

var newNums = []; 

for (var i=0; i < listItem.length; i++) { 
    newNums.push(parseInt(listItem[i].innerHTML, 10)); 
} 

FIDDLE

あなたは

for (var i=0; i < listItem.length; i++) { 
    var num = parseInt(listItem[i].innerHTML, 10); 
    if (newNums.indexOf(num) === -1) { 
     newNums.push(num); 
    } 
} 

FIDDLE

を行うことができ、また

var newNums = [], 
    duplicate = []; 

for (var i=0; i < listItem.length; i++) { 
    var num = parseInt(listItem[i].innerHTML, 10); 
    if (newNums.indexOf(num) === -1) { 
     newNums.push(num); 
    }else{ 
     duplicate.push(num); 
    } 
} 
回以上表示される値を持つ配列を取得するために、重複した値を取得しないために、

FIDDLE

Array.indexOfすべてのブラウザでサポートされていないかもしれないが、ポリフィルはMDN

であそこです