我想知道是否有任何方法可以跳过对象循环中的键。如果我有:
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]未定义且无法加入。我怎么能跳过它。
答案 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
}
}