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