1

node.jsで次のコード

var Reverse = (function() {

    return {
        reverse1: function(s) {
            var out = new String();
            for (var i = s.length - 1, j = 0; i >= 0; i--, j++) {
                out[j] = s[i];
            }
            return out;
        }
    }
})();

console.log(Reverse.reverse1("this is text"));

プリント

{ '0': 't',
  '1': 'x',
  '2': 'e',
  '3': 't',
  '4': ' ',
  '5': 's',
  '6': 'i',
  '7': ' ',
  '8': 's',
  '9': 'i',
  '10': 'h',
  '11': 't' 
}

しかし、私は文字列を印刷したいと思います。試しましreturn out.toString()たが、何も返されません。

4

4 に答える 4

3

配列インデックスによってこれを行う必要がある本当に深刻な理由がない限り、なぜそれに連結しないのですか?

out += s[i];

印刷します:

// "txet si siht"
于 2012-10-21T12:56:33.247 に答える
1

配列のjoinメソッドを使用します。

 return out.join('');

そしてに変更var out = new String();しますvar out = [];

そして注:

文字列を逆にするために以下を行うことができます:

var ret = "this is text".split('').reverse().join('');
于 2012-10-21T12:54:04.977 に答える
1
var Reverse = (function() {
    return {
        reverse1: function(s) {
            var out = "";
            for (var i = s.length - 1, j = 0; i >= 0; i--, j++) out += s[i];
            return out;
        }
    };
})();
console.log(Reverse.reverse1("this is text"));
于 2012-10-21T12:57:59.407 に答える
1
var Reverse = (function() {

    return {
        reverse1: function(s) {
            out = '';
            for (var i = s.length - 1; i >= 0; i--) {
                out += s[i];
            }
            return out;
        }
    }
})();

console.log(Reverse.reverse1("this is text"));
于 2012-10-21T14:01:06.937 に答える