Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 避免在递归内部的数组中重复数据_Javascript_Arrays_Ajax_Function_Recursion - Fatal编程技术网

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

Javascript 避免在递归内部的数组中重复数据,javascript,arrays,ajax,function,recursion,Javascript,Arrays,Ajax,Function,Recursion,我有一个递归类型的函数,它基于返回的查询动态运行,现在我想避免从每个递归循环中重复/冗余数组中的数据,我将从数组中返回的所有数据放在一起 以下是我得到的: function getbarxAxis() { $.ajax({ url: siteurl+"patients_report/bardata_date", type: "POST", dataType: "JSON", success: function(data) { var categories =

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

以下是我得到的:

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,例如,我得到了两个datemonths,然后里面的函数现在是递归的,现在从里面的函数是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

为了简单起见,我只发布以下代码。您应该能够相应地更新代码

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