gpt4 book ai didi

javascript 数组 join() 方法

转载 作者:行者123 更新时间:2023-12-02 13:43:24 25 4
gpt4 key购买 nike

有人可以帮助我理解这个脚本:

String.prototype.padLeft = function(width, char) {

var result = this;
char = char || " ";

if (this.length < width) {
result = new Array(width - this.length + 1).join(char) + this;
}
return result;
};
console.log("abc".padLeft(10,"-"));

所以..我用一个新方法扩展了对象 String 。char 参数是可选的(如果省略,函数将使用空格)我不清楚这部分:

result = new Array(width - this.length + 1).join(char) + this;

我是否创建一个包含 8 个未定义元素的新数组,然后用分隔符将它们分开?这是对的吗?为什么数组定义中有一个“+1”?预先感谢您

最佳答案

new Array(width - this.length + 1).join(char)

这个^实际上是在说“创建一个包含n个槽的空数组,然后使用char将空槽连接在一起以分隔每个空槽。因此,如果char = "0",并且n = 3,我们得到000

width - this.length + 1 用于确定需要添加到字符串开头的字符数。

然后我们将其添加到原始字符串的开头:this

+1

由于 join 的工作原理,您需要 +1。

new Array(1).join('0') = ""      // wrong
new Array(1+1).join('0') = "0" // correct
new Array(2).join('0') = "0" // wrong
new Array(2+1).join('0') = "00" // correct

关于javascript 数组 join() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42794666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com