तो मैं, यह पता लगाने कैसे एक साहचर्य सरणी है कि एक सरणी के तत्व सूचीबद्ध है, और कई बार प्रत्येक तत्व होता है की संख्या उत्पन्न करने के लिए कोशिश कर रहा हूँ जानने के बिना कर रहे हैं तत्व पहले से क्या हैं।एक सरणी में तत्वों की संख्या प्राप्त करने के लिए कैसे, जब तत्वों अज्ञात
उदाहरण के लिए, मान लीजिए कि मैं जानवरों की एक सरणी डालते हैं: var animals = ['Rhino', 'Lion', 'Dog', 'Parrot', 'Parrot', 'Cat', 'Zebra', 'Rhino']
मैं एक वस्तु है कि अंततः लगता है कि उत्पन्न करने के लिए करना चाहते हैं:
{ 'Rhino': 2, 'Lion': 1, 'Dog': 1, 'Parrot': 2, 'Cat': 1, 'Zebra': 1 }
तो मुझे पता था कि क्या में पशुओं एक वस्तु की तरह मैं चाहता पाने के लिए
var animalsCount = {};
var numberOfRhinos = animals.filter(function(animal) {
return animal == 'Rhino'
}).length;
animalsCount['Rhino'] = numberOfRhinos
: सरणी पहले से थे, मैं निश्चित रूप से की तरह कुछ कर सकता है। निश्चित रूप से समस्या यह है कि यह जानवरों की संख्या के आधार पर काफी लंबा और दोहराया जाता है। साथ ही, अगर मुझे नहीं पता कि प्रत्येक प्रकार का जानवर क्या है, तो मैं इस तरह वस्तु नहीं बना सकता। उस जानकारी को जानने के बिना ऐसा करने का एक तरीका होना चाहिए, लेकिन मैं अटक गया हूं।
, तो किसी को "misspells" '' constructor' या कुछ और के रूप में constrictor' और चीजें अजीब मिलता है। – user2357112
@ user2357112 मुझे लगता है कि आप विरासत वाले संपत्ति नामों को 'हैऑनप्रॉपर्टी' और 'टूस्ट्रिंग' जैसे संघर्ष करने का जिक्र कर रहे हैं? मैंने 'object.create (null) जोड़ा है; ' –