if(childrens are present) {
while(childrens.length ! ==0) {
do something
}
}
// Execute this function fnName()
我的问题是,while条件正在执行,但是当长度变为零时,它不会出现...并执行fnName()
最佳答案
如果您实际上是在循环中从数组中删除子级,那应该没问题,除了运算符上的间距有误之外;它应该是!==
,而不是! ==
:
while(childrens.length !== 0) {
请注意,要从数组中实际删除子级,必须使用数组更改器方法之一,例如
pop
或splice
。我的猜测是您没有这样做。更为普通的做法是遍历数组而不对其进行更改:
var index, len, child;
for (index = 0, len = childrens.length; index < len; ++index) {
child = childrens[index];
// Use `child` for each child
}
或使用诸如
forEach
之类的新ES5内容(这需要知道您的用户将拥有最新的浏览器,或者包含“ ES5填充程序”,因为forEach
是可以填充的内容之一):childrens.forEach(function(child) {
// Use `child` for each child
});
注意:“ children”一词已经是复数形式(单数形式为“ child”),因此末尾没有“ s”。仅英语的不规则复数之一(有多个)。