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

使用数组的连接方法。

 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 回答