0

websocket を介してコールバック関数で取得した配列を操作する際にいくつかの問題があります

サーバー側コード

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

今、データ変数を操作しようとすると、プッシュとシフトを使用するように

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 に答える