Javascript array().join()在下面的代码中做了什么?

Javascript array().join()在下面的代码中做了什么?,javascript,arrays,join,Javascript,Arrays,Join,-- 你能解释一下为什么array().join()返回: 正确:“他们是小指和大脑” 不正确:“他们是小指和5脑” 这将创建一个具有给定长度且未定义元素的数组。在本例中,长度为5。当5个元素连接在一起时,有4个分隔符,每个分隔符都是“大脑” var-dummyArray=Array(5); log(“我们的虚拟数组”); log(dummyArray); console.log(); log(“我们的虚拟数组以更方便的方式连接”); log(dummyArray.join(“,”); co

--

你能解释一下为什么array().join()返回:

  • 正确:“他们是小指和大脑”
  • 不正确:“他们是小指和5脑”

这将创建一个具有给定长度且未定义元素的数组。在本例中,长度为5。当5个元素连接在一起时,有4个分隔符,每个分隔符都是“大脑”

var-dummyArray=Array(5);
log(“我们的虚拟数组”);
log(dummyArray);
console.log();
log(“我们的虚拟数组以更方便的方式连接”);
log(dummyArray.join(“,”);
console.log();
log(“我们的虚拟数组更聪明地加入”);
log(dummyArray.join(“Brain”);
console.log()因为在
数组(noOfBrains+1)中。加入(“+this.mastermind)

这个。mastermind
包含字符串“Brain
noOfBrains
是'4'

因此它变成了
数组(4+1)。将(“+”Brain”)
连接到
数组(5)中。连接(“Brain”)
将显示输出为
Brain
数组()。连接()
用于将数组的所有元素连接在一个字符串中。(可选)可以指定分隔符来分隔元素


在您的代码中,
Array(noOfBrains+1)
创建一个具有给定长度的新数组,在您的示例中,4+1=5项,但所有这5项都是空的,因为您的代码没有为它们分配任何内容。因此,您的代码使用“Brain”作为分隔符连接5个空字符串。本质上,此函数实际上是分配给
mastermind
属性的任何字符串的重复器,重复次数与传递次数相同。

Array join使用一些字符串胶水将数组的所有元素连接到字符串

 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);
您将在控制台中看到“一、二、三”

在你的例子中,胶水是“大脑”。数组是[5]——我是指一个元素为5(4+1=5)的数组。所以,[5]。连接('Brain')=“5”

如果需要将某个字符串重复2次或更多次,可以使用string.repeat(次)

就你而言:

var a = ['one', 'two', 'three'];
console.log(a.join(', '));

由于5项
数组
中的“Brain”
连接在一起。您能详细说明一下您的答案吗?另外,很明显,“this.mastermind”指的是“Brain”。“这段代码做什么”似乎与我的主题无关。特别是当您只需运行代码时。这对任何人都没有帮助。@derloopkat这个问题清楚地问:“array().join()在下面的代码中做了什么?”而不是“这段代码做了什么”。
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);