반응형
JavaScript에서 문자열을 비교하는 가장 좋은 방법은 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
- JavaScript strcmp ()가 있습니까? 답변 5 개
JavaScript에서 문자열의 이진 검색을 수행하는 함수를 최적화하려고합니다.
이진 검색을하려면 키가 ==
피벗인지 피벗 인지 알아야합니다 <
.
그러나 이것은 (보다 작거나 같고 큰) 세 개의 값 을 반환 C
하는 strcmp()
함수 가있는 언어 와 달리 JavaScript에서 두 개의 문자열 비교가 필요합니다 (-1, 0, +1)
.
JavaScript에는 이러한 이진 검색의 각 반복에 단 하나의 비교 만 필요하도록 삼항 값을 반환 할 수있는 원시 함수가 있습니까?
이 localeCompare()
방법을 사용할 수 있습니다 .
string_a.localeCompare(string_b);
/* Expected Returns:
0: exact match
-1: string_a < string_b
1: string_a > string_b
*/
추가 자료 :
- MDN : String.prototype.localeCompare
- 스택 오버플로-JavaScript strcmp ()가 있습니까?
- 튜토리얼 포인트 : JavaScript 문자열-localeCompare () 메서드
JavaScript에서 정수와 동일한 값에 대해 두 개의 문자열을 확인할 수 있으므로 다음과 같이 할 수 있습니다.
"A" < "B"
"A" == "B"
"A" > "B"
따라서 문자열과 동일한 방식으로 문자열을 검사하는 고유 한 함수를 만들 수 있습니다 strcmp()
.
따라서 이것은 동일한 기능을 수행합니다.
function strcmp(a, b)
{
return (a<b?-1:(a>b?1:0));
}
당신은 할 수 문자열을 비교하는 비교 연산자를 사용합니다 . strcmp
기능은 다음과 같이 정의 할 수 있습니다 :
function strcmp(a, b) {
if (a.toString() < b.toString()) return -1;
if (a.toString() > b.toString()) return 1;
return 0;
}
편집 두 문자열이 서로 관련되는 방식을 알려주기 위해 최대 min {length ( a ), length ( b )} 비교를 수행하는 문자열 비교 함수는 다음과 같습니다 .
function strcmp(a, b) {
a = a.toString(), b = b.toString();
for (var i=0,n=Math.max(a.length, b.length); i<n && a.charAt(i) === b.charAt(i); ++i);
if (i === n) return 0;
return a.charAt(i) > b.charAt(i) ? -1 : 1;
}
참고 URL : https://stackoverflow.com/questions/2167602/optimum-way-to-compare-strings-in-javascript
반응형
'Programing' 카테고리의 다른 글
서포트 벡터 머신에 비해 인공 신경망의 장점은 무엇입니까? (0) | 2020.02.27 |
---|---|
Python 3.6 이상에서 사전이 주문됩니까? (0) | 2020.02.27 |
Apple 개발자 프로그램이나 탈옥이없는 기기에서 iOS 앱 테스트 (0) | 2020.02.27 |
PHP 문자열을 JavaScript 변수에 전달하고 줄 바꿈을 피하십시오. (0) | 2020.02.27 |
파이썬에서 '//'를 갖는 이유는 무엇입니까? (0) | 2020.02.27 |