Javascript 从套接字接收数据并进行排序和显示
我从套接字接收到数据,我需要对这些数据进行实时排序并显示。 我的代码看起来像这样,但只显示未排序的数据Javascript 从套接字接收数据并进行排序和显示,javascript,jquery,Javascript,Jquery,我从套接字接收到数据,我需要对这些数据进行实时排序并显示。 我的代码看起来像这样,但只显示未排序的数据 $.each( data.players, function( key, value ) { var p = value.value[0]/1000; $('<tr>'+ '<td>'+ '<p class="price">$'+ p.toFixed(2)+'<
$.each( data.players, function( key, value ) {
var p = value.value[0]/1000;
$('<tr>'+
'<td>'+
'<p class="price">$'+ p.toFixed(2)+'</p>'+
'</td>'+
'</tr>').appendTo('#target').hide().fadeIn(700);
});
$。每个(数据、播放器、函数(键、值){
var p=值。值[0]/1000;
$(''+
''+
“$”+p.toFixed(2)+”+
''+
'').appendTo('#target').hide().fadeIn(700);
});
第二个问题:
当数据被分类和显示并且套接字接收新的播放器时,它应该被添加到正确的位置
要排序的数据(每个id为的对象都有价格):
尝试以下方法
var data={};
//模拟从套接字进行异步数据检索
setInterval(函数(){
//随机数据
data[parseInt(getRandom(11000))]={};
//收到新数据时更新dome
updateDom();
},getRandom(10005000);
//每次收到新数据时调用此方法
updateDom();
函数updateDom(){
var键=[];
//将对象键添加到数组中,以便能够对其进行排序
用于(数据中的k){
if(data.hasOwnProperty(k)){
按键(parseInt(k));
}
}
键。排序(功能(a、b){
//排序值
回报率(ab)-1:0);
}).forEach(函数(e){
if($('#target[key='+e+']')。length==0){
//如果我们还没有打印出来
//生成dom
var穹顶=
'' +
“$”+e+”
'+
'';
//获取上一个键的值
var prevKey=keys.indexOf(e)-1;
prevKey=prevKey<0?0:prevKey;
//获取上一个元素
var keyBefore=$('#target[key='+keys[prevKey]+']);
//如果没有以前的密钥交换html
if(keyBefore.length==0){
$('#target').html(domE);
}否则{
键前
.之后(圆顶)
.hide()
.fadeIn(700);
}
}
});
}
//utils-忽略以实现真正的应用
函数getRandom(最小值、最大值){
返回Math.random()*(max-min)+min;
}
这里有数据代码>需要排序的数据在哪里?向我们展示示例数据。如果您向我们发送一些示例数据@jensej2nice,这会很有帮助,但是当套接字接收到新数据时,比如:{value:674}@jensej2,那么数据结构如下所示?[{value:1},{value:3},{value:856},{value:534},{value:1213}]否:(不是数组而是对象。{{value:1},{value:3},{value:856},{value:534},{value:1213}@jensej2在jsokej中不是有效的数据结构,我将更改为数组。但是当加载dom并插入新播放器时,它会工作吗?