【问题标题】:Inserting server-received data into a table through javascript通过javascript将服务器接收到的数据插入到表中
【发布时间】:2022-11-18 16:40:36
【问题描述】:

所以我从服务器接收到DA477B5,35,25]形式的数据 FA65EE2,35,171]

所以数据不断接收所以在 XML 的帮助下我得到了这些数据

setInterval(function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myObj = this.responseText;
        snifferOnServer(myObj);

    }
};
xhr.open("GET", "http://192.168.43.154/wifimac", true);
xhr.send();

}, 7000);

而 myobj 包含所有这样的数据 myObj = "DA477B5,35,25]FA65EE2,35,171]......"

所以我使用了一个拆分函数并将“]”这个字符作为目标。

function snifferOnServer(x) 
{

    let obj = x.split(']');
    //console.log(obj);
    for (let i = 0; i < obj.length; i++) {
        mac = obj[i];
        macIdData = mac.split(",");
        let row = myTable.insertRow();
        let cell0 = row.insertCell(0);
        let cell1 = row.insertCell(1);
        let cell2 = row.insertCell(2);
        let cell3 = row.insertCell(3);
        cell0.innerHTML = i;
        cell1.innerHTML = macIdData[0];
        cell2.innerHTML = macIdData[1];
        cell3.innerHTML = macIdData[2];
    }

}

所以Output是数组的形式。逗号被留下,每个数据集成为一个数组

DA477B5,35,25 (1st array)
FA65EE2,35,171 (2nd array)

所以现在我再次拆分一个逗号并开始在表格上显示。它看起来像这样

data on the table

但是数据开始重复,我不知道我应该把逻辑放在哪里,这样数据就不会重复。如果 macIdData[0] 存在,它不应该显示在表上;

我想知道如何添加逻辑来检查数据是否已存在于表中,如果是,则不应再次将其放在表中。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    您可以将 macIdData[0] 元素添加到数组并在将其插入表之前检查数组是否包含该元素。像下面

    function snifferOnServer(x) 
    {
        const macIdArray = [];
        let obj = x.split(']');
        //console.log(obj);
        for (let i = 0; i < obj.length; i++) {
            mac = obj[i];
            macIdData = mac.split(",");
            if(!macIdArray.includes(macIdData[0])) {
                let row = myTable.insertRow();
                let cell0 = row.insertCell(0);
                let cell1 = row.insertCell(1);
                let cell2 = row.insertCell(2);
                let cell3 = row.insertCell(3);
                cell0.innerHTML = i;
                cell1.innerHTML = macIdData[0];
                cell2.innerHTML = macIdData[1];
                cell3.innerHTML = macIdData[2];
                macIdArray.push(macIdData[0]);
             }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多