【发布时间】:2017-03-14 19:14:14
【问题描述】:
有人可以帮助我理解这个脚本:
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,"-"));
所以.. 我用一种新方法扩展对象字符串。 char 参数是可选的(如果省略,函数将使用空格) 这部分我不清楚:
result = new Array(width - this.length + 1).join(char) + this;
我是否创建了一个包含 8 个未定义元素的新数组,然后用分隔符将它们分开?这是正确的吗?为什么数组定义中有“+1”?提前谢谢你
【问题讨论】:
-
数组主要用于连接函数。它立即连接起来。
-
感兴趣的代码,在字符串开头生成一个字符
-
+1是必需的,因为加入长度为 n 的数组会产生 n-1 个分隔符。例如:['a','b','c'].join('-')结果为“a-b-c”。但是这个算法需要 n 个分隔符,所以+1.
标签: javascript arrays