我在通过 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 个。怎么了?