在jQuery中获取另一个数组中的数组值

时间:2016-02-01 01:55:36

标签: jquery

我试图获取已经在$each中循环的数组值,这里是jQuery循环的代码:

$.each(data.re, function(index, value) {
                  console.log(this);
                  setTimeout(function(event) {
                    var $items = 'my values goes here '+value.thumb+'';
                          $grid.append( $items );
                  }, duration / 2 * index);
              });

这里是我的json数组的打印(data.re)

Object {
id: 133,
thumb: "http://localhost/test.jpg",
ingr: Array[5]}
id: 133
ingr: Array[5]
0: Object
rcp_ingr_single: "test 1"
__proto__: Object
1: Object
rcp_ingr_single: "test 2"
__proto__: Object
2: Object
3: Object
4: Object

ingr内部有5个数组,相同的键(rcp_ingr_single),我无法获取键的值。 你可以帮助我了解如何获取价值,因为它已经在循环中了吗?

1 个答案:

答案 0 :(得分:0)

很难从您的描述中理解您的意图,并且很难根据从Chrome控制台复制的输出来理解数据结构,但是...

我认为你想要data.re[x].ingr[y].rcp_ingr_single中找到的值。您现有的$ .each循环似乎在迭代re数组,因此循环内的value映射到data.re[x]

在您的代码中,在您引用value.thumb的位置,您可以参考:

value.ingr[y].rcp_ingr_single

获取y&n; ingr项目(以及该项目的rcp_ingr_single成员)。你可能希望在那里有另一个循环来迭代那些ingr项目(但是你还没有说出你想对这些项目做什么,或者展示了任何试图引导我们的例子,所以我不会想进一步猜测。)

修改

您在评论中澄清了您的意图,因此这里是示例代码,显示rcp_ingr_single被附加到" $ grid" (无论发生什么)。我随意编写了格式 - 你应该根据需要重新排列:

  $.each(data.re, function(index, value) {
    console.log(this);
    setTimeout(function(event) {
      var $items = 'my values goes here ' + value.thumb;
      $.each(value.ingr, function(index, value) {
        $items += '</br>' + value.rcp_ingr_single;
      });
      $items += '</br>'
      $grid.append($items);
    }, duration / 2 * index);
  });

这里也是一名掠夺者:https://plnkr.co/edit/eKsnQ5c2Xp2PrPzWw0Hj?p=preview