如何跳过对象循环中的键

时间:2013-01-28 18:56:36

标签: javascript jquery

我想知道是否有任何方法可以跳过对象循环中的键。如果我有:

obj = {
   key1 : [ 1, 2, 3 ],
   key2 : [ 4, 5 ],
   key3 : []
}

我如何跳过,例如,空的。因为我想join()该对象中的非空数组,并过滤​​它们。如果我加入那个空数组,那么过滤器会查找空字符串,当然它找不到它,所有东西都会刹车。

var match = $('.widget');
for ( var i in obj ){
    var joined = obj[i].join();
    match = match.filter(joined);
}

我试图删除它:

if ( obj[i].length == 0 ) {
    delete obj[i]
};

但是发生错误,obj [i]未定义且无法加入。我怎么能跳过它。

2 个答案:

答案 0 :(得分:12)

使用loop control

for (var i in obj) {
   if (obj[i].length == 0) {
       continue;
   }
   ...
}

答案 1 :(得分:2)

您需要传递密钥才能删除属性:

for ( var i in obj ){
    if ( obj[i].length == 0 ) {
        delete i
    }
}