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);
所以我试图将每个阵列中的所有内容放在一起。
答案 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...
}