Javascript将一个数组提取到另一个数组中并解析

Javascript将一个数组提取到另一个数组中并解析,javascript,arrays,Javascript,Arrays,在我的javascript项目中,我有一个数组,第一个位置包含另一个数组,如下所示: {efat: {…}, fdata: "2019-07-22", tdata: "2019-01-11"} efat: {50: {…}, 169: {…}, 274: {…}, 427: {…}, 490: {…}, 589: {…}, 662: {…}, 799: {…}, 898: {…}, 994: {…}, 1085: {…}, 1293: {…}, 1407: {…}, 1500: {

在我的javascript项目中,我有一个数组,第一个位置包含另一个数组,如下所示:

{efat: {…}, fdata: "2019-07-22", tdata: "2019-01-11"}
    efat: {50: {…}, 169: {…}, 274: {…}, 427: {…}, 490: {…}, 589:    {…}, 662: {…}, 799: {…}, 898: {…}, 994: {…}, 1085: {…}, 1293: {…}, 1407: {…}, 1500: {…}, 1573: {…}, 1647: {…}, 1705: {…}, 1817: {…}, 1922: {…}, 2060: {…}, 2064: {…}, 2065: {…}, 2150: {…}, 2251: {…}, 2348: {…}, 2481: {…}, 2568: {…}, 2703: {…}, 2809: {…}, 3023: {…}}
    fdata: "2019-07-22"
    tdata: "2019-01-11"
$.ajax({
        type: "POST",
        url: "/f_fattnum/",
        data: {d_fatt: nfatt, d_tipo: tipo},
        success: function (data) {
            x = document.getElementById('t_fatt');
            x.parentNode.removeChild(x);

            document.getElementById('eldata').innerHTML = data.fdata+" al "+data.tdata

            //Recreata tbody and content after ajax call
            var tbody1 = document.createElement("TBODY");
            tbody1.id = "t_fatt";
            $.each(data['efat'], function (index) {

                var tr1 = document.createElement("TR");
                var td1 = document.createElement("TD");
                td1.innerHTML = data[index].fdata;
我尝试在第一个子数组中的数据之间循环,如下所示:

{efat: {…}, fdata: "2019-07-22", tdata: "2019-01-11"}
    efat: {50: {…}, 169: {…}, 274: {…}, 427: {…}, 490: {…}, 589:    {…}, 662: {…}, 799: {…}, 898: {…}, 994: {…}, 1085: {…}, 1293: {…}, 1407: {…}, 1500: {…}, 1573: {…}, 1647: {…}, 1705: {…}, 1817: {…}, 1922: {…}, 2060: {…}, 2064: {…}, 2065: {…}, 2150: {…}, 2251: {…}, 2348: {…}, 2481: {…}, 2568: {…}, 2703: {…}, 2809: {…}, 3023: {…}}
    fdata: "2019-07-22"
    tdata: "2019-01-11"
$.ajax({
        type: "POST",
        url: "/f_fattnum/",
        data: {d_fatt: nfatt, d_tipo: tipo},
        success: function (data) {
            x = document.getElementById('t_fatt');
            x.parentNode.removeChild(x);

            document.getElementById('eldata').innerHTML = data.fdata+" al "+data.tdata

            //Recreata tbody and content after ajax call
            var tbody1 = document.createElement("TBODY");
            tbody1.id = "t_fatt";
            $.each(data['efat'], function (index) {

                var tr1 = document.createElement("TR");
                var td1 = document.createElement("TD");
                td1.innerHTML = data[index].fdata;
但是,与我的代码的最后一行(在每个周期中)相关,我收到了错误:

未捕获的TypeError:无法读取未定义的属性“fdata”

有人能告诉我如何提取子数组并解析它吗


我不知道你说的“子阵列”是什么意思? 如果您的意思是子数组是
data.efat
,请尝试以下操作:

$.each(data.efat, function (index, value) {   
       //index equals 50, 169, 274 and so on
       //value equals {...}, {...} and so on 
       var tr1 = document.createElement("TR");
       var td1 = document.createElement("TD");
       td1.innerHTML = data.fdata;
}
$.each(data.efat, function (index, value) { 
       $.each(value, function(index, value) {      
            var tr1 = document.createElement("TR");
            var td1 = document.createElement("TD");
            td1.innerHTML = data.fdata;
      })
})
但是,如果子数组表示对的值,例如
50:{…}
,请尝试以下操作:

$.each(data.efat, function (index, value) {   
       //index equals 50, 169, 274 and so on
       //value equals {...}, {...} and so on 
       var tr1 = document.createElement("TR");
       var td1 = document.createElement("TD");
       td1.innerHTML = data.fdata;
}
$.each(data.efat, function (index, value) { 
       $.each(value, function(index, value) {      
            var tr1 = document.createElement("TR");
            var td1 = document.createElement("TD");
            td1.innerHTML = data.fdata;
      })
})

它应该是
data.efat[index].fdata
。数据['efat']的数据格式是什么。它是数组还是对象如果这是实际的Json,efat不是数组。除此之外,为什么以后不使用vanilla JS forEach呢?建议:如果AJAX可以工作,就不要包含它。而是单击编辑,然后单击
[]
按钮,并使用适当的数组/obejcts和HTML创建一个