Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从套接字接收数据并进行排序和显示_Javascript_Jquery - Fatal编程技术网

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并插入新播放器时,它会工作吗?