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