Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过多维数组最内层循环进行循环_Javascript - Fatal编程技术网

Javascript 通过多维数组最内层循环进行循环

Javascript 通过多维数组最内层循环进行循环,javascript,Javascript,我最终尝试创建一个函数,该函数根据二维(?)数组中的值生成一些html。然而,我正在努力循环所有的值。在下面的代码中,我的程序从未进入底部的else子句: let food = [ [ 'Wedges', ['Hero Wedge', "Lettuce, tomato, yada", '$19.42'], ['Differebt Wedge', "Chicken, tomato, yada", '$12.42'], ], [ 'Chicken',

我最终尝试创建一个函数,该函数根据二维(?)数组中的值生成一些html。然而,我正在努力循环所有的值。在下面的代码中,我的程序从未进入底部的
else
子句:

let food = [
  [
    'Wedges',
    ['Hero Wedge', "Lettuce, tomato, yada", '$19.42'],
    ['Differebt Wedge', "Chicken, tomato, yada", '$12.42'],
  ],
  [
    'Chicken',
    ['Chicken', "Lettuce, tomato, yada", '$19.42'],
    ['Brocolli Wedge', "Chicken, tomato, yada", '$12.42'],
  ]
]
generate(food);

function generate(food){
  for(i = 0; i < food.length; i++){
    for(j = 0; j < food[i].length; j++){
      if(j === 0){
        sectionName = food[i][j]; // "Wedges"
      }
      else{
        for(y = 0; y < food[i][j]; y++){
          console.log("were in this statment"); //Never runs
        }
      }
    }
  }
}
let food=[
[
“楔子”,
[‘英雄楔’、‘生菜、西红柿、雅达’、‘19.42美元’],
[‘Differebt Wedge’、‘鸡肉、番茄、雅达’、‘12.42美元’],
],
[
“鸡”,
[‘鸡肉’、‘生菜、西红柿、雅达’、‘19.42美元’],
['Brocolli Wedge','Chicken,tomato,yada','12.42美元'],
]
]
产生(食物);
功能(食物){
对于(i=0;i
i=0
j=1

食品[i][j]=['Hero Wedge'、“莴苣、西红柿、雅达”、“$19.42”]
?既然这是一个包含3个元素的数组,
y
的值应该是真的吗?提前谢谢

您需要检查数组的长度并声明所有变量

for(y = 0; y < food[i][j].length; y++){ // use length

循环的
范围为
y=0
y
小于
food[i][j]
处的元素,而不是
food[i][j]

其中
食品[i][j]
楔形物

因此,基本上,您的
for
循环将转换为
for(y=0;y

因此,将
中的
食物[i][j]
替换为
食物[i][j]。长度
,使循环为

else{
    for(y = 0; y < food[i][j].length; y++) { //take the length of food[i][j]
       console.log("were in this statement"); //Now runs
    }
}
else{
对于(y=0;y<食物[i][j]。长度;y++){//取食物的长度[i][j]
console.log(“在此语句中”);//现在运行
}
}

这应该可以解决您的问题。

y
->
y
?…您不知道我来stackoverflow之前花了多长时间试图找出问题所在。但谢谢!