跳过$ .each循环中的json数组值

时间:2012-07-18 00:15:23

标签: javascript ajax json

我的json数组store看起来像这样

[{
"role": "Executive Director",
"name": "David Z",
...},
{
"role": "Executive Director",
"name": "David Z",
...},
{
"role": "Non Executive Chairman",
"name": "Hersh M",
...},
{
"role": "Non Executive Director",
"name": "Alex C",
...},
{
"role": "Company Secretary",
"name": "Norman G",
...}]    
来自这个数组的

出现了几个html表。

我将store循环到绘制html表作为ajax成功函数的一部分,就像这样

var table = '';
table += '<tr><td......</td>';
$.each(store, function(i, data) {
   // draw row...
   // draw row etc...
});
table += '</tr></tbody>';
$("#table_d").append(table);

但是对于其中一个表我想跳过David Z的第二次出现(或者不止一次出现的任何名称)

var table = '';
table += '<tr><td......</td>';
$.each(store, function(i, data) {
    if (i > 0, store[i].name != store[i-1].name) { 
       // draw row...
       // draw row etc...
    }
});
table += '</tr></tbody>';
$("#table_d").append(table);

数组将始终排序,因此我可以将store[i].namestore[i-1].name进行比较,以获得重复的name

那么我怎样才能正确表达store[i].name != store[i-1].name运行循环?

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我认为你只需要这样做

if(i > 0)
{
    if(store[i].name != store[i-1].name)
    {
        //run code here
    }
}

答案 1 :(得分:1)

在每个循环之外:

var names = new Array();
在每个循环中

if(names.indexOf(store[i].name)==-1){
    names.push(store[i].name);
    //code here
}