プロパティに配列が取り込まれている場合と取り込まれていない場合があるオブジェクトの配列があります。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){});}
2番目は私には最もきれいに思えます。