避免在递归内的数组中重复数据

时间:2017-04-24 03:30:42

标签: javascript arrays ajax function recursion

我有一个递归类型的函数,它根据返回的查询动态运行,现在我想从每个递归循环中避免来自我的数组的重复/冗余数据,我将所有返回的数据从我的数组中放入。

这就是我所拥有的:

function getbarxAxis() {
 $.ajax({
   url: siteurl+"patients_report/bardata_date",
   type: "POST",
   dataType: "JSON",
   success: function(data) {
     var categories = new Array();
     for (var i in data) {
       categories.push(data[i]["datemonths"]);
       getbarseries(data[i]["datemonths"]);   
     }
   }
 });
}

这是我的第一个ajax,它获取所有的datemonths,现在例如我有两个dateioths然后里面的函数现在是递归的,现在从函数里面是getbarseries,我有一个数组存储数据在数组中,现在这里是:

function getbarseries(month) {
    $.ajax({
      url: siteurl+"patients_report/bardataclinic/"+month,
      type: "POST",
      dataType: "JSON",
        success: function(data) {
          var names = new Array();
          for(var i in data) {
            names.push(data[i]['clinic_name']);
          }

          alert(JSON.stringify(uniqueNames));

        }
    });
}

现在第一个递归数据是:

Clinic 1, Clinic 2, Clinic 3, Clinic 4

第二个递归数据是:

Clinic 1, Clinic 2, Clinic 3, Clinic 4, Clinic 5

我想要一个能够检测到重复的清理器,如果它被复制,它将不会从数组中推送/添加。

因此,我希望从数组中得到的输出是两次递归:

Clinic 1, Clinic 2, Clinic 3, Clinic 4, Clinic 5

1 个答案:

答案 0 :(得分:-1)

为简单起见,我只是发布以下代码。您是否应该相应地更新您的代码。

var round1 = ["Clinic 1","Clinic 2"];
var round2 = ["Clinic 2", "Clinic 3"];

var finalround = round1.concat(round2); // Merges both arrays
// ['Clinic 1', 'Clinic 2', 'Clinic 3' ]

所以抓住第一个递归数据和下一个递增数据,然后只需 concat