शीर्षक यह बताता है।jQuery.inArray() केस असंवेदनशील बनाने का कोई तरीका?
उत्तर
आप each( उपयोग कर सकते हैं) ...
// Iterate over an array of strings, select the first elements that
// equalsIgnoreCase the 'matchString' value
var matchString = "MATCHME".toLowerCase();
var rslt = null;
$.each(['foo', 'bar', 'matchme'], function(index, value) {
if (rslt == null && value.toLowerCase() === matchString) {
rslt = index;
return false;
}
});
नहीं। आपको अपने डेटा के साथ बेझिझक करना होगा, मैं आम तौर पर आसान तुलना के लिए अपने सभी तारों को कम करता हूं। कस्टम तुलना फ़ंक्शन का उपयोग करने की भी संभावना है जो तुलनात्मक मामले को असंवेदनशील बनाने के लिए आवश्यक परिवर्तन करेगा।
सरणी के माध्यम से और प्रत्येक तत्व toLower और आप के लिए क्या देख रहे हैं toLower, लेकिन समय में उस बिंदु पर पाश, आप के रूप में अच्छी बस इसे बजाय inArray का उपयोग कर के तुलना कर सकते हैं सकता है()
ऐसा लगता है कि आपको इसका अपना समाधान लागू करना पड़ सकता है। Here jQuery पर कस्टम फ़ंक्शंस जोड़ने पर एक अच्छा लेख है। आपको केवल लूप के लिए एक कस्टम फ़ंक्शन लिखना होगा और फिर डेटा को सामान्यीकृत करना होगा।
@ ड्रू विल्स के लिए धन्यवाद।
मैं इस रूप में यह दुबारा लिखा:
function inArrayCaseInsensitive(needle, haystackArray){
//Iterates over an array of items to return the index of the first item that matches the provided val ('needle') in a case-insensitive way. Returns -1 if no match found.
var defaultResult = -1;
var result = defaultResult;
$.each(haystackArray, function(index, value) {
if (result == defaultResult && value.toLowerCase() == needle.toLowerCase()) {
result = index;
}
});
return result;
}
यह मेरे लिए पूरी तरह से काम किया। – Alan
इन दिनों मैं इस तरह के कार्यों के लिए underscore का उपयोग करना पसंद:
a = ["Foo","Foo","Bar","Foo"];
var caseInsensitiveStringInArray = function(arr, val) {
return _.contains(_.map(arr,function(v){
return v.toLowerCase();
}) , val.toLowerCase());
}
caseInsensitiveStringInArray(a, "BAR"); // true
में मामला किसी को भी एक और अधिक एकीकृत दृष्टिकोण jquery का उपयोग कर चाहता था:
(function($){
$.extend({
// Case insensative $.inArray (http://api.jquery.com/jquery.inarray/)
// $.inArrayIn(value, array [, fromIndex])
// value (type: String)
// The value to search for
// array (type: Array)
// An array through which to search.
// fromIndex (type: Number)
// The index of the array at which to begin the search.
// The default is 0, which will search the whole array.
inArrayIn: function(elem, arr, i){
// not looking for a string anyways, use default method
if (typeof elem !== 'string'){
return $.inArray.apply(this, arguments);
}
// confirm array is populated
if (arr){
var len = arr.length;
i = i ? (i < 0 ? Math.max(0, len + i) : i) : 0;
elem = elem.toLowerCase();
for (; i < len; i++){
if (i in arr && arr[i].toLowerCase() == elem){
return i;
}
}
}
// stick with inArray/indexOf and return -1 on no match
return -1;
}
});
})(jQuery);
- 1. केस असंवेदनशील
- 2. केस-असंवेदनशील
- 3. एक केस-असंवेदनशील सूची
- 4. डाटाबेस केस असंवेदनशील सूचकांक?
- 5. केस-असंवेदनशील एनएसएसटींग तुलना
- 6. केस-असंवेदनशील GetMethod?
- 7. एसओएलआर केस असंवेदनशील खोज
- 8. केस-असंवेदनशील array_unique
- 9. अभिव्यक्ति और केस-असंवेदनशील
- 10. केस असंवेदनशील है जहां स्ट्रिंगप्रॉपर्टी
- 11. केस असंवेदनशील खोज/प्रश्न
- 12. केस असंवेदनशील सभी
- 13. केस असंवेदनशील एलडीएपी खोज
- 14. PHP: केस-असंवेदनशील पैरामीटर
- 15. केस असंवेदनशील शब्दकोश खोज?
- 16. केस असंवेदनशील स्ट्रिंग तुलना
- 17. ऐरेलिस्ट तत्व केस-असंवेदनशील
- 18. केस असंवेदनशील #define
- 19. एक्सएमएल पथ - केस असंवेदनशील
- 20. केस असंवेदनशील स्ट्रिंग ::
- 21. emacs: क्या regexp में केस-असंवेदनशील खोज निर्दिष्ट करने का कोई तरीका है?
- 22. cshell टैब पूर्णता, केस असंवेदनशील
- 23. केस-असंवेदनशील साइफर क्वेरी चलाना
- 24. MySQL में केस-असंवेदनशील प्रतिस्थापन?
- 25. स्ट्रॉप्स केस असंवेदनशील कैसे बनाएं
- 26. केस असंवेदनशील स्कैला पार्सर-संयोजक
- 27. जेसन.NET केस-असंवेदनशील संपत्ति Deserialization
- 28. मोंगो में केस असंवेदनशील खोज
- 29. पायथन केस असंवेदनशील फ़ाइल नाम?
- 30. एसएचए -256 केस असंवेदनशील है?
आप "वापसी झूठी" जोड़ना चाहते हैं; इसके अंत में यदि कथन है तो मिलान तत्व के बाद 'प्रत्येक' जारी नहीं होता है। (JQuery.each() में "झूठी वापसी;" एक नियमित जावास्क्रिप्ट पाश में "ब्रेक;" के बराबर है।) –
क्या यह कम करने के बजाए लोअरकेस नहीं है? – Sarfraz
@ जोर्डन और @ सर्फ्राज़: दोनों अच्छे अंक –