使用Data:for loop vs .each循环遍历javascript数组数组

时间:2015-12-15 04:30:34

标签: javascript jquery arrays loops

我的数据似乎是一个数组数组,我想循环它并使用数据

如果我调试:

的console.log(ALLDATA);

这是数据的外观

enter image description here

  1. 为什么会这样说"数据" ?
  2. 我似乎无法显示数据
  3. 此For循环不起作用

     for (var i = 0; i < alldata.length; i++) {
                console.log(alldata[0]);
     }
    

    我认为该对象的长度将是&#34; ok&#34; ,我做错了什么?

    此外,我一直在尝试使用$ .each进行不同类型的循环,而我并不理解索引

    alldata,index,query ... 我知道查询将包含包含但我希望循环它们。

    似乎我无法查询[index] [0],我也不知道为什么。

    这是我尝试循环并添加到变量

    的地方
    $.each(alldata, function (index, query) {
                //console.log(alldata);
                //console.log(index);
                //console.log(query);
                //console.log(query[0][0]);
                //console.log(index);
                strData += "<tr>";
                strData += "<td>" + query[0][0] + "</td>"; //+ query.outage_k + "</td>";
                strData += "</tr>";
    
            });
    

    更新:

    我在数据库表的另一列中添加了返回,我目前看到的是

    122461,4876192
    

    现在我有2条记录

    所以这就是节目

    enter image description here

     $.each(alldata.Data, function (index, query) {
        strData += "<td>" + query + "</td>"; 
     }
    

    那是吐出122461,4876192我如何使用&#34;查询&#34;分离?

    我想最终做到这一点

    <td>122461</td><td>4876192</td>
    

3 个答案:

答案 0 :(得分:1)

当您记录alldata时,它正在返回

>Object {Data: Array[9]}

表示您的alldata变量指向一个对象,该对象具有一个名为Data的属性,该属性具有九个元素的数组。要访问该阵列,您可以

alldata.Data 

答案 1 :(得分:1)

您的对象有一个名为&#34; Data&#34;所以你必须将数组称为alldata.Data,然后以这种方式循环。

编辑:看起来@Austin的速度更快!

答案 2 :(得分:1)

它不是数组数组。它是一个包含数组的对象。

这里有四种不同的迭代方式。所有这些都是功能相同的。使用你最喜欢的那个。

// native JavaScript, ES6+
alldata.Data.forEach(x => console.log(x));

// native JavaScript, ES5+
alldata.Data.forEach(function(x) {
  console.log(x);
});

// native JavaScript, all versions
for (var i=0; i<alldata.Data.length; i++) {
  console.log(alldata.Data[i]);
}

// jQuery
$.each(alldata.Data, function(i,x) {
  console.log(x);
});