我有一个对象数组,可能会或可能不会在其属性中填充一个数组。对 null x 调用 $.each(x,function(){}) 会导致类型错误
try{
var a = {};
$.each(a.doesnotexist,function(k,v){})
} catch(e) {
console.log(e.message)
}
我已经看到了在空对象上使用 $.extend 并将该值传递给 $.each() 的建议。这两种方法似乎都对我有用,而且看起来更简单,有什么缺点吗?
//some test values, not guaranteed properties are populated
var a = [
{v: [1,2,3,4,5], w: [1,2,3,4,5,6]},
{v: [1,2,3,4,5]},
{w: [1,2,3,4,5]},
{v: [1,2,3], w: []},
{v: null}
];
for (i =0; i < a.length; i++) {if (a[i].v) $.each(a[i].v,function(k,v){});}
for (i =0; i < a.length; i++) {$.each(a[i].v||[],function(k,v){});}
第二个对我来说似乎最干净。