In this article, we will know the optimal way to compare the strings using built-in JavaScript methods & will see their implementation through the examples. The question is to compare 2 JavaScript strings optimally. To do so, here are a few of the most used techniques discussed. The method discussed below is used in the following examples.
String localeCompare() Method: This method compares two strings in the current locale. The current locale is based on the language settings of the browser. This method returns a number that tells whether the string comes before, after, or is equal to the compareString in sort order.
Syntax:
string.localeCompare(String_2);
Parameters:
- String_2: This required parameter specifies the string to be compared with.
Please refer to the JavaScript Operators Complete Reference article for further details on operators.
Example 1: This example compares the 2 strings using localeCompare() method and returns 0, -1, or 1. This method does case-sensitive comparisons.
Javascript
let str1 = "GFG"
let str2 = "GeeksforGeeks"
let ans = str1.localeCompare(str2);
let res = "" ;
if (ans == -1) {
res = '"' + str1 + '" comes before "' + str2 + '"' ;
} else if (ans === 0) {
res = 'Both string are same' ;
} else {
res = '"' + str1 + '" comes after "' + str2 + '"' ;
}
console.log(res);
|
Output"GFG" comes after "GeeksforGeeks"
Example 2: This example compares the 2 strings by writing a condition that returns 0, -1, or 1 depending on the comparison. This method also does case-sensitive comparisons.
Javascript
let str1 = "Geeks"
let str2 = "GFG"
let ans = str1 < str2 ? -1 : (str1 > str2 ? 1 : 0);
let res = "" ;
if (ans == -1) {
res = '"' + str1 + '" comes before "' + str2 + '"' ;
} else if (ans === 0) {
res = 'Both string are same' ;
} else {
res = '"' + str1 + '" comes after "' + str2 + '"' ;
}
console.log(res);
|
Output"Geeks" comes after "GFG"
Example 3: This example compares the 2 same strings (case-sensitive also) by using the localeCompare() method.
Javascript
let str1 = "GeeksforGeeks"
let str2 = "GeeksforGeeks"
let ans = str1.localeCompare(str2);
let res = "" ;
if (ans == -1) {
res = '"' + str1 + '" comes before "' + str2 + '"' ;
} else if (ans == 0) {
res = 'Both string are same' ;
} else {
res = '"' + str1 + '" comes after "' + str2 + '"' ;
}
console.log(res);
|
OutputBoth string are same