我需要对从HTML表中获取的数据进行统计。第一列是gatewayId,第二列是statusId,第三列是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完成的。
谢谢!
发布于 2016-09-23 06:45:47
我将按以下方式完成这项工作;
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)
发布于 2016-09-23 06:48:21
您可以创建已发现的列表并使用筛选器。
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>
https://stackoverflow.com/questions/39662728
复制