Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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_Database - Fatal编程技术网

Javascript 如何避免在不同的行中显示重复的数据?

Javascript 如何避免在不同的行中显示重复的数据?,javascript,database,Javascript,Database,我正在尝试显示从数据库返回的记录 我返回的数据如下所示: UserID Username Fullname ID 141 john jerry1 170 141 john jerry1 18 141 john jerry1 1169 110 ted jerrytest 1701 110 ted jerryte

我正在尝试显示从数据库返回的记录

我返回的数据如下所示:

UserID   Username    Fullname     ID
141        john       jerry1      170   
141        john       jerry1      18
141        john       jerry1      1169
110        ted       jerrytest    1701
110        ted       jerrytest    18
我想在页面中显示所有ID,但避免重复的用户名

那就好像

john    170
        18
        1169

ted     1701
        18
//I only want 2 divs (for john and ted) instead of 5. 
我的代码目前显示

john    170    //1 loop
john    18     //1 loop
john    1169   //1 loop

ted     1701   //1 loop
ted     18     //1 loop
我的代码:

for(var i=0; i<results.length; i++){
  //create a div for each row...in my case, 5 divs/rows


//i tried to create a var a
   a=i-1;
   if(results[a]){
        if(results[i].Username==results[a].Username){
           continue;
        }
    }


//this will eliminate the duplicated john and ted but only show john 170 and ted 1701.

}

for(var i=0;i为什么不同时使用这两种方法

var endResult = "",
    ids = [],
    userName;

for (var i = 0, lt = results.length; i < lt; i++)
{
    ids.push(results[i].ID);
    userName = (i === 0 || results[i].Username != results[i-1].Username) ? results[i].Username : false;

    if (userName)
    {
        endResult += "<div>" + userName + "</div>";
        endresult += "<div>" + ids.join("<br>") + "</div>"

        //Reset the list of ids
        ids = [];
    }
}
var endResult=“”,
ids=[],
用户名;
对于(var i=0,lt=results.length;i”)+“”
//重置ID列表
ids=[];
}
}

我有时这样做,效果很好。要么这样做,要么重新构造数据,使其更像
[141,'john','jerry1',[170,181169]
。在我的情况下,我对数据结构无能为力。(我希望我可以)为什么不呢?你只需要在运行循环之前对数据进行预处理。你的解决方案对我来说很有用。我忘了提一下,我的最终结果中只需要2个div(对于john和ted),而不是5个div。+1考虑好了,没问题。我编辑了代码以考虑到这一点。不过,这超出了我的想象,所以它未经测试。