JSON数据中,可能会有相同的重复记录,在JS中怎么排重呢?

duu007 2012-10-17 06:42:20
比如,JSON如下: {"id":"1231"}, {"id":"9387"}, {"id":"68433"}, {"id":"1231"}, {"id":"43566"}

这个需要怎么处理,来进行把重复的二个数据,排重为一条呢?
...全文
4643 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
12_1 2014-01-05
  • 打赏
  • 举报
回复
如果是多个字段,怎样判断
泡泡鱼_ 2012-10-18
  • 打赏
  • 举报
回复
在2楼写的方法有缺陷,再次修正

Array.prototype.removeRepeatAttr=function(){
var tmp={},a=this.slice();
for(var i=j=0;i<a.length;i++){
if(!tmp[a[i].id]){
tmp[a[i].id]=!0;
j++;
}else{
this.splice(j,1);
}
};
}
var arr=[{"id":"1"}, {"id":"2"}, {"id":"1"}, {"id":"3"}, {"id":"2"}, {"id":"5"}, {"id":"3"}, {"id":"4"}, {"id":"2"}, {"id":"4"}];
arr.removeRepeatAttr();

//以下只是为了看效果,实际使用时直接操作arr即可
var str='[',tpl='{"{0}","{1}"}';
for(var i=0;i<arr.length;i++){
for(var n in arr[i]){
str+=tpl.replace('{0}',n).replace('{1}',arr[i][n]);
}
}
str+=']';
alert(str)
  • 打赏
  • 举报
回复
这个算法可以实现

var a = [{"id":"1231"},{"id":"9387"},{"id":"68433"},{"id":"1231"},{"id":"43566"}];
for(var i=0; i < a.length; i++) {
for(var j=i+1; j < a.length; j++) {
if(a[i].id == a[j].id) {
a.splice(a[j],1);

}
}
}

for(var k=0; k < a.length; k++) {
alert(a[k].id);
}
duu007 2012-10-18
  • 打赏
  • 举报
回复
谢各位兄弟,我试试看。
展S开K双Y翼 2012-10-18
  • 打赏
  • 举报
回复
这个只能写算法排重
泡泡鱼_ 2012-10-17
  • 打赏
  • 举报
回复
修正一下那个扩展方法,使其作用于自身
Array.prototype.removeRepeatAttr=function(){
var tmp={},b=[],a=this;
for(var i=0;i<a.length;i++){
if(!tmp[a[i].id]){
tmp[a[i].id]=!0;
}else{
a.splice(i,1);
}
};
}
var a=[{"id":"1231"}, {"id":"9387"}, {"id":"68433"}, {"id":"1231"}, {"id":"43566"}];
a.removeRepeatAttr();
for(var i=0;i<a.length;i++){
alert(a[i].id)
}
泡泡鱼_ 2012-10-17
  • 打赏
  • 举报
回复
Array.prototype.removeRepeatAttr=function(){
var tmp={},b=[],a=this;
for(var i=0;i<a.length;i++){
if(!tmp[a[i].id]){
b.push(a[i]);
tmp[a[i].id]=!0;
}
};
return b;
}
var a=[{"id":"1231"}, {"id":"9387"}, {"id":"68433"}, {"id":"1231"}, {"id":"43566"}];
a=a.removeRepeatAttr();
for(var i=0;i<a.length;i++){
alert(a[i].id)
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧