var object = {
mastermind : "Brain",
henchman: "Pinky",
battleCry: function (noOfBrains) {
return "They are " + this.henchman + " and the" +
Array(noOfBrains + 1).join(" " + this.mastermind);
}
};
var battleCry = object.battleCry(4);
-
你能解释为什么 array()。join() return :
答案 0 :(得分:1)
这将创建一个具有未定义元素的给定长度的数组。在这个例子中长度为5.当5个元素连接在一起时,有4个分隔符,每个分隔符都是“脑”
var dummyArray = Array(5);
console.log("Our Dummy Array");
console.log(dummyArray);
console.log();
console.log("Our Dummy Array Joined More Conventially");
console.log(dummyArray.join(","));
console.log();
console.log("Our Dummy Array Joined More Brainly");
console.log(dummyArray.join(" Brain"));
console.log();
答案 1 :(得分:1)
因为Array(noOfBrains + 1).join(" " + this.mastermind)
中有this.mastermind
包含字符串" Brain "。
noOfBrains
是' 4'。
因此Array(4+1).join(" " +"Brain")
变成Array(5).join(" Brain")
会将输出显示为Brain Brain Brain Brain
答案 2 :(得分:1)
array().join()
用于将数组的所有元素连接在一起。 (可选)您可以指定分隔符以分隔元素。
在您的代码中,Array(noOfBrains + 1)
创建一个具有给定长度的新数组,在您的示例中为4 + 1 = 5个项目,但所有这5个项目都是空的,因为您的代码没有为它们分配任何内容。因此,您的代码使用"加入5个空字符串。脑"作为分隔符。从本质上讲,此函数实际上是分配给mastermind
属性的任何字符串的转发器,其次数与传递它一样多。
答案 3 :(得分:0)
数组连接使用一些字符串粘合将数组的所有元素连接到字符串。
var a = ['one', 'two', 'three'];
console.log(a.join(', '));
你会看到"一,二,三"在控制台中。
在您的情况下胶水是"脑&#34 ;.数组是[5] - 我的意思是一个元素的数组是5(4 + 1 = 5)。所以,[5] .join(' Brain')=" 5"
如果你需要重复一些字符串2次或更多次,你可以使用String.repeat(次)。
在你的情况下:
var bcObject = {
mastermind : "Brain",
henchman: "Pinky",
battleCry: function (noOfBrains) {
return "They are " + this.henchman + " and the" +
(' ' + this.mastermind).repeat(noOfBrains);
}
};
var battleCry = bcObject.battleCry(4);