Javascript将一个数组提取到另一个数组中并解析
在我的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: {
{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创建一个