You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中将服务器返回的数组存入另一个数组

实现每次获取的MAC数据存入全局数组

修改方案

  1. 声明一个全局数组,用来累积每次从服务器获取到的所有MAC数据
  2. 修复原代码中变量未声明导致的隐式全局问题
  3. 每次处理得到单组macIdData后,将其存入全局数组

修改后的完整代码

// 声明全局数组,用于存储所有历史MAC数据
let allMacData = [];

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);

function snifferOnServer(x) {
    let obj = x.split(']');
    for (let i = 0; i < obj.length; i++) {
        // 修复变量作用域,添加let声明
        let mac = obj[i];
        let macIdData = mac.split(',');
        // 过滤空数组(处理split后可能出现的空元素)
        if (macIdData.length > 0 && macIdData[0].trim() !== '') {
            allMacData.push(macIdData);
        }
        console.log('当前单组数据:', macIdData);
        console.log('所有累积数据:', allMacData);
    }
}

关键说明

  • allMacData是全局变量,会持续保存每次请求返回的所有macIdData数组,不会因为请求周期重置
  • 给mac和macIdData添加let声明,避免它们成为全局变量导致的意外覆盖
  • 增加了空数组过滤逻辑,防止服务器返回的数据拆分后产生无效的空元素存入数组
  • 可以通过console.log(allMacData)随时查看所有累积的历史数据

内容的提问来源于stack exchange,提问作者Ramesh A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:45:26