迭代对象数组并创建输出

时间:2015-02-25 10:11:55

标签: jquery arrays multidimensional-array

实际上我尝试使用以下函数迭代多维数组:

var output = '<div class="row">';
var string = "searchstring";
$.each(data.text, function(key, value){

    $.each(value, function(k, v){   
        if (v != null){
            if (v.search(string) != -1) {
                output += '<div class="col-md-6 well">';
                output += '<div class="col-md-3">'+value.kdi_schulnr+'</div>';
                output += '<div class="col-md-7">';
                output += '<h5>' + value.kde_name + '</h5>';
                output += '<p>' + value.adr_strasse + '</p>';
                output += '</div>';
                output += '</div>';
            }
        }
    });

});
output += '</div>';
$('#results').html(output);

数组看起来像这样(摘录为例子):

{
    "id":"1",
"kde_id":"99",
"kde_name":"Name",
"kde_kurzname":"Name",
"kde_form":"G",
"kde_ganztagsform":null,
"kde_rechtsstatus":"Staatl. anerk.",
"kde_jg":null,
"kde_kapitel":"3100",
"kde_valid_from":"0000-00-00 00:00:00",
"kde_valid_till":"0000-00-00 00:00:00",
"kde_status":"0",
"kdeart_id":"1",
"kdi_id":"1",
"kdi_schulnr":"320167567",
"kdi_standort":"1",
"kdi_zsnr":null,
"kdi_standortnr":"32011456645"
},
{
"id":"2",
"kde_id":"100",
"kde_name":"FooBar",
"kde_kurzname":"Foo",
"kde_form":"GS-HR-STS",
"kde_ganztagsform":"1",
"kde_rechtsstatus":"Staatl. anerk.",
"kde_jg":null,
"kde_kapitel":"3140",
"kde_valid_from":"0000-00-00 00:00:00",
"kde_valid_till":"0000-00-00 00:00:00",
"kde_status":"0",
"kdeart_id":"1",
"kdi_id":"2",
"kdi_schulnr":"320233",
"kdi_standort":"1",
"kdi_zsnr":null,
"kdi_standortnr":"3202112"
}

一切正常,但如果我搜索“0”,我会获得同一阵列的6个输出。我怎么能避免相同数据的多个输出?

1 个答案:

答案 0 :(得分:0)

找到了答案!

我把&#34;返回false;&#34;在第二个内部每个跳到下一个数组。 现在,如果搜索到的值匹配,我每个阵列只有1个输出。

var output = '<div class="row">';
var string = "searchstring";
$.each(data.text, function(key, value){

  $.each(value, function(k, v){   
      if (v != null){
          if (v.search(string) != -1) {
              output += '<div class="col-md-6 well">';
              output += '<div class="col-md-3">'+value.kdi_schulnr+'</div>';
              output += '<div class="col-md-7">';
              output += '<h5>' + value.kde_name + '</h5>';
              output += '<p>' + value.adr_strasse + '</p>';
              output += '</div>';
              output += '</div>';
              return false;
          }
      }
   });
});

output += '</div>';
$('#results').html(output);