JavaScript加入多个数组混淆

JavaScript join multiple arrays confusion?

本文关键字:数组 JavaScript      更新时间:2023-09-26

根据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>

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

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

fruits.join(food);

产量实际上是意料之中的,对于你拥有的每一种"水果",你都会把整个食物阵列放在它们之间。

如果要合并两个阵列,请使用concat:

var newArray = fruits.concat(food);

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

concat 的工作示例

您想要使用concat。请参阅concat上的文档。

x.innerHTML = fruits.concat(food);

Join不是您想要的,concat是:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat