2016-09-23 5 views
1

HTMLテーブルから取得されたデータの統計を作成する必要があります。 最初の列はgatewayIdで、2番目の列はstatusIdで、3番目の列はgsmErrorです。 そのテーブルを正常にフィルタリングし、それらの値を配列にプッシュしました。配列からのユニークな値

ここで、その配列から固有のゲートウェイのリストを作成する必要があります。 その配列にどの値が入るのか分かりませんが、その列が "10"列に含まれていることがわかりました。

["2951"、 "3"、 "511"、 "2737"、 "3"、 "502"、 "2737"、 "3"、 "502"、 "2732 」...]

let messageLogTable = $("#tableId"); 
    var filteredColData = []; 

    messageLogTable.find('tr').each(function(rowIndex, rowData) { 
     if(rowIndex > 0){ 

      $(this).find('td').each(function(colIndex, colData) { 

       if(colIndex === 10 || colIndex === 11 || colIndex === 17) { 
        filteredColData.push($.trim(colData.textContent)); 
       } 
      }); 
     } 
    }); 
    console.log(filteredColData); 

結果は次のようにする必要があります:可能な場合 2951、2737、2732

私は、これはjQueryのを使用して行われることをしたいと思います。

ありがとうございます!

+1

2737 'gatewayId'、' statusId'、と 'gsmError'特性を有するobject's'の配列を維持するのが賢明かもしれない二回 –

+0

表示されます。そこからフィルタリングすることができます。見た目には分かりにくい値の配列を保持するよりも、少なくとも簡単です。 – Orpheus

+0

お返事ありがとうございます。私は同じことを考えましたが、その値をオブジェクトにどのように格納するのかは分かりませんでした。 – Nenson

答えて

0

私はこの仕事を次のようにします。

var data = ["2951", "3", "511", "2737", "3", "502", "2737", "3", "502", "2732"], 
 
gatewayID = [...new Set(data.reduce((p,c,i) => !(i%3) ? p.concat(c) : p, []))] 
 
console.log(gatewayID)

0

あなたは発見のリストを作成し、フィルタを使用することができます。

var messageLogTable = $("#tableId"); 
 
var filteredColData = []; 
 
var discovered = []; 
 
messageLogTable.find('tr').each(function(rowIndex, rowData) { 
 
    $(this).find('td').each(function(colIndex, colData) { 
 
     if (filteredColData.length > 0) { 
 
      for (var i = 0; i < filteredColData.length; i++) { 
 
       if (filteredColData[i] == $(this).html()) { 
 
        discovered.push(filteredColData[i]); 
 
       } 
 
      }; 
 
     }; 
 
     filteredColData.push($(this).html()); 
 
    }); 
 
}); 
 
filteredColData = filteredColData.filter(function(x) { 
 
    return discovered.indexOf(x) < 0 
 
}) 
 
alert(JSON.stringify(filteredColData));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<table id="tableId"> 
 
<tr> 
 
    <td>1</td> 
 
    <td>2</td> 
 
    <td>2</td> 
 
    <td>3</td> 
 
    <td>4</td> 
 
    <td>4</td> 
 
</tr> 
 
</table>

関連する問題