効率を高めたランダム オブジェクト プロパティの取得
JavaScript で次のようなオブジェクトが見つかったとします。
{cat: 'meow', dog: 'woof', snake: 'hiss'}
このオブジェクトからランダムなプロパティを取得したい場合があります。以下のような長期にわたる方法を採用する代わりに、
function pickRandomProperty(obj) { var prop, len = 0, randomPos, pos = 0; for (prop in obj) { if (obj.hasOwnProperty(prop)) { len += 1; } } randomPos = Math.floor(Math.random() * len); for (prop in obj) { if (obj.hasOwnProperty(prop)) { if (pos === randomPos) { return prop; } pos += 1; } } }
この最適化されたアプローチを活用することを検討してください:
var randomProperty = function (obj) { var keys = Object.keys(obj); return obj[keys[ keys.length * Math.random() << 0]]; };
この手法では、Object.keys() メソッドを利用してパフォーマンスの向上を最適化します。オブジェクトのキーの配列を取得します。その後、配列の長さに乱数を乗算して、キーを取得するための配列のインデックスを取得します。最後に、オブジェクト内の対応するプロパティにアクセスして、目的のランダムなプロパティを返します。
以上がJavaScript オブジェクトからランダムなプロパティを効率的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。