如何在javascript中访问数组中的数组

时间:2017-09-01 18:56:03

标签: javascript arrays iterator

const arr = [ { 'days': 5,
'planDataTitle': 'Standard Plant-based meal Plan',
'breakfast': 1,
'lunch': 1,
'dinner': 1,
'entreeArry': [ [{'name':'meal plan'}], [{'quantity':1}] ] },
{ 'days': 5,
'planDataTitle': 'ION Performance Protein +',
'breakfast': 1,
'lunch': 1,
'dinner': 1,
'entreeArry': [ [{'name':'meal plan2'}], [{'quantity':2}] ] } ]


arr.forEach(function(element,index){
      meal_name = element.entreeArry[index].name
      quantity = element.entreeArry[index].quantity
      const arr = []
      newArr.push('- '+element.planDataTitle+'<br>'+ " " +mealOrder.join(',')+' for '+element.days+" days.<br>  "+meal_quantity[0].quantity+"x "+meal_name[0].name);

这只是给我一个项目,我如何得到它所以我可以将所有项目都包含在entreeArry中我试图加入我的“arr”中的每个项目的名称和数量。相应

预期产出可能是:

newArr.push('- '+element.planDataTitle+'<br>'+ " " +mealOrder.join(',')+' for '+element.days+" days.<br>  "+meal_quantity[0].quantity+"x "+meal_name[0].name);

所以我试图将每个阵列中的所有内容放在一起。

1 个答案:

答案 0 :(得分:1)

您正在混合index含义。

arr.forEach(function(element,index){
  meal_name = element.entreeArry[index].name
  quantity = element.entreeArry[index].quantity
}

此处index的值是您的顶级数组的索引,但随后您将其用于子数组。 实际上,您需要另一个循环来迭代内部数组。

arr.forEach(function(plan,index){
  plan.entreeArry.forEach(function(entree){
    var meal_name = entree.name
    var quantity = entree.quantity
  }
}

注意实际上您的entryArry格式不正确。它也是一个数组数组,因此在当前情况下,您需要获取第一个值,并迭代它。

首先,您应该将entreeArry修复为一个对象数组:

entreeArry: [ {name:'tea', quantity:2} ]

然后,如果你需要根据https://pastebin.com/RJ9qFFAi中的样本制作一个好的标签来使用两个数组中的数据

arr.forEach(function(plan,index){
  var output = '- ' + plan.planDataTitle + '<br> ' +
      mealOrder.join(',') + ' for ' + plan.days + ' days.<br> ';
  plan.entreeArry.forEach(function(entree){
    var meal_name = entree.name;
    var quantity = entree.quantity;
    output += quantity + 'x ' + meal_name + '<br>';
  }
  // use your output here...
}