दिलचस्प पोस्ट
क्या जावा में सी # के रेफरी और आउट कीवर्ड्स की तरह कुछ है? नेस्टिंग मार्गों और गतिशील रूप से रूटर-रूटर v4 में रूटिंग एमपीआई में आउटपुट का ऑर्डर देना डॉकर छवि बनाम कंटेनर SSL / HTTPS कनेक्शन के लिए एक अविश्वस्त प्रमाणपत्र का उपयोग करने के लिए जावा को अनुमति दे रही है स्थिर रूप से जुड़े पुस्तकालयों के बीच प्रतीक टक्कर से निपटने के लिए कैसे? मैं एक HTTP 414 "अनुरोध यूआरआई बहुत लंबा" त्रुटि कैसे हल करता हूं? कर्ल -GET और -X GET अनपेक्षित जावास्क्रिप्ट दिनांक व्यवहार jQuery DOM दृश्य स्रोत में दिखाई नहीं देता सी मानक का कौन सा भाग इस कोड को संकलित करने की अनुमति देता है? एचटीएमएल को लगता है कि "चॉकनोरिस" एक रंग क्यों है? चेक बॉक्स वरीयता को अनुकूलित करें NSURLConnection के UserAgent को बदलना पासवर्ड संरक्षित एक्सेल फाइल

एक सरणी में प्रत्येक वस्तु की घटनाओं की संख्या कैसे गिनेंगी?

मेरे पास एक सरणी है,

var arr = ['ab','pq','mn','ab','mn','ab'] 

अपेक्षित परिणाम

 arr['ab'] = 3 arr['pq'] = 1 arr['mn'] = 2 

इस प्रकार की कोशिश की,

 $.each(arr, function (index, value) { if (value) arr[value] = (resultSummary[value]) ? arr[value] + 1 : 1; }); console.log(arr.join(',')); 

वेब के समाधान से एकत्रित समाधान "एक सरणी में प्रत्येक वस्तु की घटनाओं की संख्या कैसे गिनेंगी?"

इस कार्य के लिए jQuery का उपयोग करने की कोई ज़रूरत नहीं है – यह उदाहरण ऑरेम में हर अलग तत्व की घटनाओं की मात्रा के साथ एक वस्तु का निर्माण करेगी

 var obj = { }; for (var i = 0, j = arr.length; i < j; i++) { obj[arr[i]] = (obj[arr[i]] || 0) + 1; } console.log(obj); /** * { * "ab" : 3, * "pq" : 1, * "mn" : 2 * } */ console.log(obj['mn']); // 2 

उदाहरण बेला: http://jsfiddle.net/8Gt6V/

मुझे लगता है कि सरणी में एक ही मान के साथ घटनाओं को कैसे गिनाना है यह सबसे आसान तरीका है।

 var a = [true, false, false, false]; a.filter(function(value){ return value === false; }).length 

यदि आप चीनी लाइब्रेरी का उपयोग कर रहे हैं तो यह बस है:

 arr.count('ab'); 

डेमो

देखें: ऐरे गिनती एपीआई

 var result = {}; function count(input){ var tmp = 0; if(result.hasOwnProperty(input)){ tmp = result[input]; result[input]=tmp+1; }else{ result[input]=1; } } 

फ़ंक्शन के ऊपर आपको एक स्ट्रिंग के अंक को एक सरणी में गिना जाने में मदद मिलेगी।

अगर आप ऐसा समाधान नहीं चाहते हैं जिसके लिए लाइब्रेरी की आवश्यकता होती है, और विरासत जावास्क्रिप्ट का समर्थन नहीं करना है:

 var report = {}; arr.forEach(function(el){ report[el] = report[el] + 1 || 1; }); 

या यदि आप इसे jQuery का उपयोग करना चाहते हैं:

 var report = {}; $.each(arr,function(i,el){ report[el] = report[el] + 1 || 1; }); 

यह परिस्थितियों के लिए परीक्षण करने के लिए शॉर्ट सर्किट लॉजिक का उपयोग करता है और मान सेट करता है। मुझे लगता है कि यह जावास्क्रिप्ट करने का एक बहुत संक्षिप्त और पठनीय तरीका है।

 console.log( report ); 

$ .grep की कोशिश करें

उदाहरण:

 var arr = ['ab','pq','mn','ab','mn','ab'] jQuery.grep(arr, function(a){ return a == 'ab' }).length // 3 

अगर आईओ 8 का समर्थन आवश्यक नहीं है

 ['ab','pq','mn','ab','mn','ab'].filter(function(value){ return value == 'ab' }).length // 3 

क्या ऐसा हो सकता है कि आप क्या करने की कोशिश कर रहे हैं?

 $.each(arr, function(index, value) { if (!resultSummary[value]){ resultSummary[value] = 0; } resultSummary[value] += 1; }); 

यह कोड सरणी में प्रत्येक स्ट्रिंग की घटनाओं को resultsArray और परिणामों में परिणामों को resultsArray

 var arr = ['ab','pq','mn','ab','mn','ab'] function getCount(arr,val) { var ob={}; var len=arr.length; for(var k=0;k<len;k++) { if(ob.hasOwnProperty(arr[k])) { ob[arr[k]]++; continue; } ob[arr[k]]=1; } return ob[val]; } //run test alert(getCount(arr,'ab'));//3 

डेमो: http://jsfiddle.net/dmx4y/2/

 var arr = ['ab','pq','mn','ab','mn','ab']; var result = { }; for(i=0;i<arr.length;++i) { if(!result[arr[i]]) result[arr[i]]=0; ++result[arr[i]]; } for (var i in result){ console.log(i+":"+result[i]); }