-1

私の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次のように、ajax 成功関数の一部として、draw html テーブルにループスルーします。

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ただし、テーブルの 1 つについては、2 回目の発生(または複数回発生する名前)をスキップしたい

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].nameを比較できます。store[i-1].namename

store[i].name != store[i-1].nameループを実行した場合、どうすれば正しく表現できますか?

4

2 に答える 2

1

各ループの外側:

var names = new Array();

各ループ内:

if(names.indexOf(store[i].name)==-1){
    names.push(store[i].name);
    //code here
}
于 2012-07-18T00:40:47.360 に答える
1

私があなたの質問を正しく理解していれば、これを行うだけでよいと思います

if(i > 0)
{
    if(store[i].name != store[i-1].name)
    {
        //run code here
    }
}
于 2012-07-18T00:22:02.447 に答える