js 实现类似 Java 中的 StringBuilder

前端页面中对字符串的拼接操作是还是比较多的, 为此自己写了一个类似Java中StringBuilder的类, 以减轻字符串拼接工作, 有待改进.

;(function(window, undefined) {

    if (typeof window.StringBuilder === 'function') {
        return window.StringBuilder;
    }

    function filterString(input) {
        var type = typeof input,
            result = '';

        if (input === null || type === 'undefined') {
            return result;
        }

        // for string, number, boolean, also NaN
        result += input;

        return result;
    }

    StringBuilder = function(initStr) {
        this.array = [filterString(initStr)];
    };

    StringBuilder.prototype = {

        constructor: StringBuilder,

        append: function(input) {
            this.array.push(filterString(input));
            return this;
        },

        isEmpty: function() {
            return this.array.length === 0;
        },

        clear: function() {
            this.array.length = 0;
            return this;
        },

        // delete: function(start, end) {

        //  // if only start given, then delete one char which index is start
        //  if (typeof end === 'undefined') {
        //      this.array.splice(start, 1);
        //  } else {
        //      this.array.splice(start, end - start);
        //  }
        //  return this;
        // },

        reverse: function() {

            var thisArr = this.array,
                len = thisArr.length,
                i = -1;

            if (len === 1) {
                thisArr[0] = thisArr[0].split('').reverse().join('');
            } else {

                while (++i < len) {
                    thisArr[i] = thisArr[i].split('').reverse().join('');
                }
                thisArr.reverse();
            }
            return this;
        },

        toString: function() {
            return this.array.join('');
        },

        valueOf: function() {
            return this.toString();
        }
    };

    window.StringBuilder = StringBuilder;
})(window);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值