ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript オブジェクトからランダムなプロパティを効率的に取得する方法

JavaScript オブジェクトからランダムなプロパティを効率的に取得する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 01:07:02824ブラウズ

How to Efficiently Retrieve a Random Property from a JavaScript Object?

効率を高めたランダム オブジェクト プロパティの取得

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。