"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं जावास्क्रिप्ट ऑब्जेक्ट से एक यादृच्छिक संपत्ति का संक्षिप्त रूप से चयन कैसे कर सकता हूं?

मैं जावास्क्रिप्ट ऑब्जेक्ट से एक यादृच्छिक संपत्ति का संक्षिप्त रूप से चयन कैसे कर सकता हूं?

2024-11-07 को प्रकाशित
ब्राउज़ करें:100

How can I select a random property from a JavaScript object concisely?

जावास्क्रिप्ट ऑब्जेक्ट से एक यादृच्छिक संपत्ति का संक्षेप में चयन करना

जावास्क्रिप्ट में, ऑब्जेक्ट एक हैश तालिका में संग्रहीत कुंजी-मूल्य जोड़े हैं। किसी वस्तु से किसी विशिष्ट गुण को पुनः प्राप्त करने के लिए सटीक गुण कुंजी जानने की आवश्यकता होती है। हालाँकि, कभी-कभी किसी ऑब्जेक्ट से एक यादृच्छिक संपत्ति का चयन करना वांछनीय हो सकता है।

एक सामान्य दृष्टिकोण में ऑब्जेक्ट के गुणों पर पुनरावृत्ति करना, उन्हें गिनना और फिर उस सीमा के भीतर एक यादृच्छिक पूर्णांक उत्पन्न करना शामिल है। इस दृष्टिकोण का उपयोग करते हुए, आप लंबाई निर्धारित करने के लिए ऑब्जेक्ट पर एक बार पुनरावृत्ति करेंगे और फिर उस सूचकांक पर यादृच्छिक संपत्ति खोजने के लिए दोबारा पुनरावृत्ति करेंगे।

हालांकि, इस लक्ष्य को प्राप्त करने का एक अधिक संक्षिप्त और अक्सर तेज़ तरीका है:

var randomProperty = function (obj) {
    var keys = Object.keys(obj);
    return obj[keys[ keys.length * Math.random() << 0]];
};

यह दृष्टिकोण ऑब्जेक्ट.कीज़() विधि का उपयोग करता है, जो ऑब्जेक्ट में सभी संपत्ति कुंजियों की एक सरणी लौटाता है। इस सरणी की लंबाई को 1 से कम यादृच्छिक मान से गुणा करके (बिट शिफ्टिंग का उपयोग करके), हम सरणी के भीतर एक यादृच्छिक सूचकांक प्राप्त करते हैं। इस यादृच्छिक सूचकांक के साथ सरणी में अनुक्रमणिका चयनित संपत्ति कुंजी प्रदान करती है। अंत में, इस कुंजी का उपयोग करके ऑब्जेक्ट तक पहुंचने से संबंधित संपत्ति मूल्य पुनः प्राप्त होता है। ]

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3