2

簡単な質問があります。最初の文字列が2番目の文字列よりも小さいか、等しいか、大きいかを示す数値を返す文字列比較関数を作成したいと思います。

どうやら最も簡単な解決策は次のとおりです。

function compare (x, y){
  return x < y ? -1 : (x === y ? 0 : 1);
}

ただし、文字列は2回比較される可能性があるため、これはあまり効率的ではありません。一方、Javascriptには個々の文字の概念がなく、代わりに1文字の文字列があるため、一般的な教科書ソリューションの実装(両方の文字列を繰り返してそれぞれの位置の文字を比較する)はおそらくさらに非効率的です。

では、組み込みのJavascript機能(ES5、多分?)を使用してそのような関数を効率的に実装するためのトリックはありますか、それとも前述のコードに固執していますか?

4

1 に答える 1

4

おそらく、localeCompare関数をチェックする必要がありますか?それがまさにその目的です。文字列を比較します。)。

于 2012-10-22T23:35:56.947 に答える