3

文字列から余分なスペースを削除するプログラムを作成しようとしています。必要になると予想される最初の2つの関数を作成しようとしています。いくつかのテストを行ってクラスメートに相談した後、2番目の関数の何が問題になっているのか理解できません(2番目の関数であるとかなり確信しています)?

var isWhiteSpace = function(char) {
    var out = false;
    if (char === ' ' || char === '\f' || char === '\n' || char === '\r' || char === '\t') {
        out = true;
    }
    return out;
};

var removeLeadingSpaces = function(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        if (isWhiteSpace(s.charAt(i))) {
            s.replace(s.charAt(i), '');
        }
    }
    return s;
};
4

2 に答える 2

3

s = s.replace(/^\s+/,"");ループを実行するよりも簡単です。

これは、javascript の正規表現がすでに空白とは何か ( \s) を認識しており、文字列の先頭からプルする方法( ) を認識して^おり、独自に再帰できる ( +) ためです。

于 2012-11-08T03:50:24.583 に答える
1

使用するs=s.replace(s.charAt(i), '');

replace メソッドは元の文字列を変更しません。値を返します。

于 2012-11-08T03:49:33.047 に答える