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考虑好了,没问题。我编辑了代码以考虑到这一点。不过,这超出了我的想象,所以它未经测试。