使用js扩展padLeft、padRight的功能

在JavaScript中,padLeftpadRight 这两个函数不是内置的,但你可以很容易地自定义它们。以下是如何使用 JavaScript 实现这两个函数的方法:

String.prototype.padLeft = function(totalWidth, paddingChar = ' ') {
    var padding = '';
    var originalLength = this.length;
    if (originalLength < totalWidth) {
        padding = Array(totalWidth - originalLength + 1).join(paddingChar);
    }
    return padding + this;
};

String.prototype.padRight = function(totalWidth, paddingChar = ' ') {
    var padding = '';
    var originalLength = this.length;
    if (originalLength < totalWidth) {
        padding = Array(totalWidth - originalLength + 1).join(paddingChar);
    }
    return this + padding;
};

你可以像下面这样使用这两个函数:

var str = "hello";
console.log(str.padLeft(10, '*'));  // 输出: *****hello
console.log(str.padRight(10, '*'));  // 输出: hello*****

注意:虽然这种方式可以工作,但直接修改内置对象的原型(如 String.prototype)通常并不推荐,因为这可能会导致与其他代码的冲突。在生产环境中,更安全的做法可能是将这些函数作为独立的函数,而不是扩展到 String.prototype。例如:

function padLeft(str, totalWidth, paddingChar = ' ') {
    var padding = '';
    var originalLength = str.length;
    if (originalLength < totalWidth) {
        padding = Array(totalWidth - originalLength + 1).join(paddingChar);
    }
    return padding + str;
}

function padRight(str, totalWidth, paddingChar = ' ') {
    var padding = '';
    var originalLength = str.length;
    if (originalLength < totalWidth) {
        padding = Array(totalWidth - originalLength + 1).join(paddingChar);
    }
    return str + padding;
}

使用方式如下:

var str = "hello";
console.log(padLeft(str, 10, '*'));  // 输出: *****hello
console.log(padRight(str, 10, '*'));  // 输出: hello*****
posted @ 2024-12-28 09:06  王铁柱6  阅读(186)  评论(0)    收藏  举报