【问题标题】:looping over javascript array of arrays with Data: for loop vs .each使用数据循环遍历数组的javascript数组:for循环与.each
【发布时间】:2015-12-15 04:30:33
【问题描述】:

我的数据似乎是一个数组数组,我想对其进行循环并使用数据

如果我调试:

console.log(alldata);

这就是数据的样子

  1. 为什么会显示“数据”?
  2. 我似乎无法显示数据

这个 For 循环不起作用

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

我认为那个对象的长度应该是 "ok" ,我做错了什么?

我也一直在尝试使用 $.each 的不同类型的循环,但我不了解索引

所有数据、索引、查询... 我知道查询将包含包含但我希望循环它们。

似乎我不能查询[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 条记录

那就是节目

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

那是吐出 122461,4876192 我如何使用“查询”进行分离?

我想最终这样做

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

【问题讨论】:

  • 这是一个 object,其中包含一个数组数组。你想遍历alldata.Data
  • 您还需要使用 'i' 而不是 '0' 例如console.log(alldata[i]);

标签: javascript jquery arrays loops


【解决方案1】:

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

这里有 4 种不同的方式来遍历您的数组。它们在功能上都是等效的。使用你最喜欢的那个。

// 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);
});

【讨论】:

  • 很好,好的,所以这给了我一个循环,我看到它吐出所有这些值,但现在我希望能够拥有更多数据,所以“x”只会是第一条记录,但是如果我有更多数据呢?
  • 该函数将对数组中的每个元素调用一次。 x 只是当前循环迭代的占位符。循环第一次运行时,x 将指向第一个元素 (alldata.Data[0])。第二次循环运行时,x 将指向第二个元素 (alldata.Data[1])。等等..
  • 例如,它应该吐出“122461”,但我对函数(x)感到困惑,因为如果对象包含具有更多数据的数组,例如图像中我有 0 : 122461 ,但是如果我有 1 : johnson 2: Denver 等......那么循环将如何工作以显示它?
  • 在您的问题中发布您的实际数据和预期输出。那么有人可以更好地帮助你。
【解决方案2】:

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

>Object {Data: Array[9]}

这意味着您的alldata 变量指向一个对象,该对象具有一个名为Data 的属性,该属性具有一个由九个元素组成的数组。要访问你会做的数组

alldata.Data 

【讨论】:

  • 我想循环 alldata.Data.forEach(function(x) { console.log(x); });
【解决方案3】:

您的对象有一个名为“Data”的属性,因此您必须将数组称为alldata.Data,然后以这种方式循环遍历它。

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

【讨论】:

  • 我希望遍历 alldata.Data.forEach(function(x) { console.log(x); });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 2018-02-21
相关资源
最近更新 更多