Javascript 是否跳过数组数组中的空数组?

Javascript 是否跳过数组数组中的空数组?,javascript,html,arrays,object,Javascript,Html,Arrays,Object,我偶然发现了一个我以前从未遇到过的案例。我有一个数组,每个数组里面都有几个对象,或者什么都没有。我使用这些对象来生成一些HTML,所有这些都可以很好地工作,除非我试图处理空数据(数组中没有对象)。我在考虑循环它们,如果我得到一个空数组来创建特定的HTML,但我似乎无法处理它。。。当我这样解释的时候,可能听起来有点牵强,所以我将把代码片段留给它自己 const theGrandArray=[ [ {id:1}, {id:12}, {id:13} ], [ {id:2}, {id:22}, {id

我偶然发现了一个我以前从未遇到过的案例。我有一个数组,每个数组里面都有几个对象,或者什么都没有。我使用这些对象来生成一些HTML,所有这些都可以很好地工作,除非我试图处理空数据(数组中没有对象)。我在考虑循环它们,如果我得到一个空数组来创建特定的HTML,但我似乎无法处理它。。。当我这样解释的时候,可能听起来有点牵强,所以我将把代码片段留给它自己

const theGrandArray=[
[
{id:1},
{id:12},
{id:13}
],
[
{id:2},
{id:22},
{id:23}
],
[],//这是我要处理的数组
[
{id:4},
{id:42},
{id:43}
]
]
const theUl=document.getElementById('theUl')
for(设i=0;i

    您是否尝试调试它?Chrome开发工具可能会派上用场。 最里面的
    for
    代码将永远不会对空子数组执行,因为
    grandarray[2]。length
    为零。要处理这种情况,您需要在
    for
    之前添加
    if

    if (theGrandArray[i].length === 0) { 
      /* special case */
    } else {
      for (/* ... */)
    }
    

    你试过调试它吗?Chrome开发工具可能会派上用场。 最里面的
    for
    代码将永远不会对空子数组执行,因为
    grandarray[2]。length
    为零。要处理这种情况,您需要在
    for
    之前添加
    if

    if (theGrandArray[i].length === 0) { 
      /* special case */
    } else {
      for (/* ... */)
    }
    
    您可以在父阵列和内部阵列上使用:

    theGrandArray.forEach(arr=>{
    const li=document.createElement('li');
    li.innerText=arr.map(el=>el.id).join(“,”)
    他们的孩子(李);
    })
    
    请看这里:
    const theGrandArray=[
    [
    {id:1},
    {id:12},
    {id:13}
    ],
    [
    {id:2},
    {id:22},
    {id:23}
    ],
    [],//这是我要处理的数组
    [
    {id:4},
    {id:42},
    {id:43}
    ]
    ]
    const theUl=document.getElementById('theUl')
    GrandArray.forEach(arr=>{
    const li=document.createElement('li');
    li.innerText=arr.map(el=>el.id).join(“,”)
    他们的孩子(李);
    })
    可以在父阵列和内部阵列上使用:

    theGrandArray.forEach(arr=>{
    const li=document.createElement('li');
    li.innerText=arr.map(el=>el.id).join(“,”)
    他们的孩子(李);
    })
    
    请看这里:
    const theGrandArray=[
    [
    {id:1},
    {id:12},
    {id:13}
    ],
    [
    {id:2},
    {id:22},
    {id:23}
    ],
    [],//这是我要处理的数组
    [
    {id:4},
    {id:42},
    {id:43}
    ]
    ]
    const theUl=document.getElementById('theUl')
    GrandArray.forEach(arr=>{
    const li=document.createElement('li');
    li.innerText=arr.map(el=>el.id).join(“,”)
    他们的孩子(李);
    })

      当遇到空数组时,您只需要一个IF条件来决定该怎么做:

      const theGrandArray=[
      [
      {id:1},
      {id:12},
      {id:13}
      ],
      [
      {id:2},
      {id:22},
      {id:23}
      ],
      [],//这是我要处理的数组
      [
      {id:4},
      {id:42},
      {id:43}
      ]
      ]
      const theUl=document.getElementById('theUl')
      for(设i=0;i

        当遇到空数组时,您只需要一个IF条件来决定该怎么做:

        const theGrandArray=[
        [
        {id:1},
        {id:12},
        {id:13}
        ],
        [
        {id:2},
        {id:22},
        {id:23}
        ],
        [],//这是我要处理的数组
        [
        {id:4},
        {id:42},
        {id:43}
        ]
        ]
        const theUl=document.getElementById('theUl')
        for(设i=0;i

          不清楚问题是什么;如果您想处理空嵌套数组的长度检查,如果
          0
          做一件事,当然
          >0
          做您现在正在做的事情(或者做您需要做的任何事情)。它不起作用,因为
          kGrandArray[i]。长度
          0
          0<0
          都是假的。只是一个建议,使用
          forEach
          循环可以帮助您更清楚地看到问题所在,并进行相应的调试;如果您想处理空嵌套数组的长度检查,如果
          0
          做一件事,当然
          >0
          做您现在正在做的事情(或者做您需要做的任何事情)。它不起作用,因为
          kGrandArray[i]。长度
          0
          为,而
          0<0
          为假。建议您使用
          forEach
          循环来查看