0

我在通过 websockets 操作回调函数中获得的数组时遇到了一些问题

服务器端代码

var io = require('socket.io').listen(app);

io.sockets.on('connection', function (socket) {
    var currentTime = new Date().getTime();
    var startTime = currentTime - (5*60*1000);
    step = 30*1000;
    var stats = [];
    stats["values"] = [1, 2, 3, 4, 3, 4, 5, 8, 2, 3, 4, 1];
    stats["start"] = startTime;
    stats["end"] = currentTime;

    socket.emit('initial', { stats: stats }); 
    socket.on('echo', function (data) {

    }); 
});

客户端代码

var data;

socket.on('initial', function (stats) {
  data = stats.stats;
});

现在,当我尝试操作数据变量时。就像使用 push 和 shift

data.values.push(10);
data.values.shift();

我期待它有

2, 3, 4, 3, 4, 5, 8, 2, 3, 4, 1, 10

但是我不知道移位操作会完全删除所有元素,并且数组中只剩下 10 个。怎么了?

4

1 回答 1

0

您将获得您的响应对象{stats: stats},但您对该stats属性感兴趣:

var data;

socket.on('initial', function (obj) {
  data = obj.stats;
});
于 2012-10-30T15:08:32.927 回答