オブジェクトがそのプロパティの1つとして長さを持っているかどうかに基づいて設定されている変数があります。そうでない場合は、プロパティの1つが存在するかどうかを確認する必要があります。その場合は、そのオブジェクトに格納されている最初の配列を取得して長さを返します。そうでない場合、変数は1に設定されます。これは、このようなステートメントですべて組み合わせることができます。
var b=someObject;
var len = b.num||(b.arrs?(function(a){for(var x in a)return a[x].length})(b.arrs):false)||1;
これを行う別の方法は、関数を引き出してこのようにすることです
function getLength(a){for(var x in a)return a[x].length})
var b=someObject;
var len = b.num||(b.arrs?getLength(b.arrs):false)||1;
片方の方法で他の方法と比較してパフォーマンスが低下するのではないかと思っていました。javascriptエンジンがそれらを見る方法に違いはありますか?私が最初の方法を好む理由は、それが私にたくさんの余分なヘルパー関数を持たせないようにするためです。