কেউ কি আমার জন্য এটি যাচাই করতে পারবেন? জাভাস্ক্রিপ্টে strcmp () এর সংস্করণ নেই, সুতরাং আপনাকে এরকম কিছু লিখতে হবে:
( str1 < str2 ) ?
-1 :
( str1 > str2 ? 1 : 0 );
কেউ কি আমার জন্য এটি যাচাই করতে পারবেন? জাভাস্ক্রিপ্টে strcmp () এর সংস্করণ নেই, সুতরাং আপনাকে এরকম কিছু লিখতে হবে:
( str1 < str2 ) ?
-1 :
( str1 > str2 ? 1 : 0 );
উত্তর:
কি সম্পর্কে
str1.localeCompare(str2)
localeCompare()
কখনও কখনও প্রতিটি ব্রাউজারে আলাদা আচরণ করে।
জাভাস্ক্রিপ্ট এটি নেই, আপনি উল্লেখ হিসাবে।
একটি দ্রুত অনুসন্ধান আসে:
function strcmp ( str1, str2 ) {
// http://kevin.vanzonneveld.net
// + original by: Waldo Malqui Silva
// + input by: Steve Hilder
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + revised by: gorthaur
// * example 1: strcmp( 'waldo', 'owald' );
// * returns 1: 1
// * example 2: strcmp( 'owald', 'waldo' );
// * returns 2: -1
return ( ( str1 == str2 ) ? 0 : ( ( str1 > str2 ) ? 1 : -1 ) );
}
http://kevin.vanzonneveld.net/techblog/article/ জাভাস্ক্রিপ্ট_ইকুইভ্যালেন্ট_ফর্ম_এইচপিএস_স্ট্রিএমপি / থেকে
অবশ্যই, প্রয়োজন হলে আপনি কেবল লোকালক্যাম্পার যুক্ত করতে পারেন:
if (typeof(String.prototype.localeCompare) === 'undefined') {
String.prototype.localeCompare = function(str, locale, options) {
return ((this == str) ? 0 : ((this > str) ? 1 : -1));
};
}
এবং str1.localeCompare(str2)
স্থানীয় ব্রাউজারটি এটি পাঠিয়ে দিয়েছে বলে চিন্তা না করে সর্বত্র ব্যবহার করুন । একমাত্র সমস্যা হ'ল আপনাকে সমর্থন যোগ করতে হবে locales
এবংoptions
যদি আপনি সে সম্পর্কে যত্নশীল হন।
==
যা ব্যবহার করা হয় এবং ===
পরেরটি এড়াতে হয় না রূপান্তর টাইপ করুন এবং তাই যে মাইক্রো দ্বিতীয় দ্রুত।
var a = this.toUpperCase(); var b = str.toUpperCase(); return ((a == b) ? 0 : ((a > b) ? 1 : -1));
localeCompare()
ধীর গতির , সুতরাং যদি আপনি অ-ইংলিশ-অক্ষরযুক্ত স্ট্রিংয়ের "সঠিক" ক্রমটির বিষয়ে চিন্তা না করেন তবে আপনার আসল পদ্ধতিটি বা ক্লিনার দেখানোর চেষ্টা করুন:
str1 < str2 ? -1 : +(str1 > str2)
এটি localeCompare()
আমার মেশিনের চেয়ে দ্রুততার একটি ক্রম ।
+
নিশ্চিত করে যে উত্তর সবসময় বদলে সাংখ্যিক বুলিয়ান।
(str1 > str2) - (str1 < str2)
var strcmp = new Intl.Collator(undefined, {numeric:true, sensitivity:'base'}).compare;
ব্যবহার: strcmp(string1, string2)
ফলাফল: 1
মানে স্ট্রিং 1 বড়, 0
সমান -1
অর্থ, স্ট্রিং 2 এর চেয়ে বড়।
এর চেয়ে বেশি পারফরম্যান্স রয়েছে String.prototype.localeCompare
এছাড়াও, numeric:true
এটি যৌক্তিক সংখ্যার তুলনা করে makes
কেমন:
String.prototype.strcmp = function(s) {
if (this < s) return -1;
if (this > s) return 1;
return 0;
}
তারপরে, এস 1 এর সাথে 2 এর সাথে তুলনা করুন:
s1.strcmp(s2)