【问题标题】:how do i access my array within array in javascript我如何在javascript中的数组中访问我的数组
【发布时间】:2018-02-10 21:14:02
【问题描述】:
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);

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

【问题讨论】:

  • 当你遇到一个数组时创建另一个forEach循环。
  • 你需要另一个循环来遍历 entreeArry 中的项目
  • 您的 entreeArry 格式不正确。喝完茶后缺少一个}。老实说,还有各种奇怪的东西
  • entreeArry: [ [{'name':'tea'], [{'quantity':2}] ] } ] 我一遍又一遍地对此感到困惑。你想拥有的是:entreeArry: [ {name:'tea', quantity:2} ]
  • 你的预期输出是什么?

标签: javascript arrays iterator


【解决方案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...
}

【讨论】:

  • 我将如何继续访问 plan.EntreArry 之外的数据?我正在尝试将其与我的计划数组链接。
  • 你的意思是plan.lunchplan.days 等等?
  • 是的,我正在尝试将 plan.lunc 和 plan.days 的信息与我的 entreeArry 一起加入
  • 你可以在你的循环中使用你的plan var。
  • 我更新了问题,我正在尝试访问我的 entree.name 和数量并将其连接到 arr 中的每个项目中,相应地@Zilvinas
猜你喜欢
  • 2018-03-03
  • 1970-01-01
  • 2022-09-23
  • 2011-11-05
  • 1970-01-01
  • 2014-01-30
  • 1970-01-01
  • 2020-12-26
  • 2014-12-14
相关资源
最近更新 更多