json for循环从输出变量中删除重复项

时间:2015-08-11 23:34:53

标签: javascript jquery json

我需要在循环中停止重复,因为我得到重复的div 10次:

out = '';
for(var p in outData){
    for(var key in p){
        out += '<div id="'+p+'">'+outData[p]["message"]+' - '+outData[p]["xxx"]+'</div>';
    }
}
$( element ).prepend(out);
来自json的

outData = {
    "1439335276":{"message":"fg","xxx":"xxx"},
    "1439335668":{"message":"fgx","xxx":"xxx"},
    "1439335675":{"message":"fgxccc","xxx":"xxx"}
}

实际上我得到了正确的数据,我只需要停止复制......我做错了什么?

实际结果:

<div id="1439335276">fg - xxx</div>
... x10
<div id="1439335668">fgx - xxx</div>
... x10
<div id="1439335675">fgxccc - xxx</div>
... x10

理想的结果:

<div id="1439335276">fg - xxx</div>
<div id="1439335668">fgx - xxx</div>
<div id="1439335675">fgxccc - xxx</div>

3 个答案:

答案 0 :(得分:0)

你有一个额外的嵌套循环,删除内部循环

for(var p in outData){  
      out += '<div id="'+p+'">'+outData[p]["message"]+' - '+outData[p]["xxx"]+'</div>';    
}

DEMO

答案 1 :(得分:0)

你有一个太多的循环

var out = '';
for(var p in outData){
    out += '<div id="'+p+'">'+outData[p]["message"]+' - '+outData[p]["xxx"]+'</div>';
}

给出:

<div id="1439335276">fg - xxx</div>
<div id="1439335668">fgx - xxx</div>
<div id="1439335675">fgxccc - xxx</div>

答案 2 :(得分:0)

根据JSON,JSON不正确或任何JS变量名称应以_或字母开头。并且你不需要内循环,但你的调用最终代码是

out = '';
for(var p in outData){
    out += '<div id="'+p+'">'+outData[p]["message"]+' - '+outData[p]["xxx"]+'</div>';
}
$( element ).prepend(out);