JavaScript加入多个数组混淆?

Sye*_*iff 2 html javascript arrays join

根据W3Schools,join()函数定义为

" join()方法将数组的元素连接成一个字符串,并返回字符串.元素将由指定的分隔符分隔.默认的分隔符是逗号(,)."

但是,如果我尝试使用join()函数将两个数组连接在一起,它会产生一个我似乎无法理解的输出.任何人都可以解释一下吗?以下是示例代码:

<body>

<p>Click the button to join the array elements into a string.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    var food = ["Chicken","Fish","Lamb","Prawns"];
    var x = document.getElementById("demo");
    x.innerHTML = fruits.join(food);
}
</script>
</body>
Run Code Online (Sandbox Code Playgroud)

JSFiddle:https://jsfiddle.net/gf84ee9y/

Jor*_*rix 7

这是因为您正在连接一个数组并传入另一个数组作为分隔符:

fruits.join(food);
Run Code Online (Sandbox Code Playgroud)

输出实际上是预期的,对于你拥有的每个"水果",你将整个食物阵列放在它们之间.

如果要合并两个数组,请使用concat:

var newArray = fruits.concat(food);
Run Code Online (Sandbox Code Playgroud)

现在您可以加入newArray,它将只有每个数组中每个元素的一个副本.

concat的工作示例