js一点简单扩展

//-------------------------------数组扩展-------------------------------
//查找所有匹配的元素
Array.prototype.findAll = function(match) {
    var arr2 = [];
    for (var i = 0, l = this.length; i < l; i++) {
        if (match(this[i])) {
            arr2.push(this[i]);
        }
    }
    return arr2;
};
//查找第一个匹配的元素
Array.prototype.find = function(match) {
    for (var i = 0, l = this.length; i < l; i++) {
        if (match(this[i])) {
            return this[i];
        }
    }
    return null;
};
//判断数组是否包含元素
Array.prototype.contains = function(item) {
    for (var i = 0, l = this.length; i < l; i++) {
        if (this[i] === item) {
            return true;
        }
    }
    return false;
}
//获取元素在数组中的位置
Array.prototype.indexOf = function(item) {
    for (var i = 0, l = this.length; i < l; i++) {
        if (this[i] === item) {
            return i;
        }
    }
    return -1;
}
//简单迭代器
Array.prototype.forEach = function(func) {
    for (var i = 0, l = this.length; i < l; i++) {
        func(this[i]);
    }
}
//数组转换
Array.prototype.convertAll = function(converter) {
    var arr2 = [];
    for (var i = 0, l = this.length; i < l; i++) {
        arr2.push(converter(this[i]));
    }
    return arr2;
}
//移除元素
Array.prototype.remove = function(item) {
    for (var i = this.length - 1; i >= 0; i--) {
        if (this[i] === item) {
            this.splice(i, 1);
        }
    }
}
//在指定位置移除元素
Array.prototype.removeAt = function(index) {
    this.splice(index, 1);
}
//移除所有匹配项
Array.prototype.removeAll = function(macth) {
    for (var i = this.length - 1; i >= 0; i--) {
        if (macth(this[i])) {
            this.splice(i, 1);
        }
    }
}
//清空数组
Array.prototype.clear = function() {
    this.splice(0, this.length);
}


//-------------------------------字符串扩展-------------------------------
//剪切
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, arguments[0] || "");
}
//字符串替换函数
String.prototype.replaceAll = function(s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2);
}
//格式化
String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(\d{1})}/g, function() {
        return args[arguments[1]];
    });
};


//大量字符串拼接
function StringBuilder() {
    this._strs = [];
}
StringBuilder.prototype.append = function(str) {
    this._strs.push(str);
};
StringBuilder.prototype.toString = function() {
    this._strs.join("");
};


//为 window.location 扩展 params ,其为由Url参数组成的列表
//使用方法:var param1Value = window.location.params["param1Name"];
//其中 param1Name 为当前Url中出现的某一参数名, param1Value 为获取到的该参数名对应的值
(function(loc) {
    var querys = {};
    var search = loc.search;
    if (search.indexOf("?") > -1) {
        search = search.substr(1);
        var arr2 = search.split("&");
        for (var i = 0; i < arr2.length; i++) {
            var index = arr2[i].indexOf("=");
            if (index > -1) {
                var key = arr2[i].substr(0, index);
                var val = arr2[i].substr(index + 1);
                querys[key] = unescape(val);
            }
        }
    }
    loc.params = querys;

})(window.location);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值