2016-05-15 11 views
2

Nach W3Schools Join() Funktion alsJavaScript Join mehrere Arrays Verwirrung?

"Der definiert ist join() Methode, die Elemente eines Arrays in einen String verbindet, und gibt die Zeichenfolge. Die Elemente um einen bestimmten Separator getrennt werden Das Standardtrennzeichen ist Komma (,). "

Wenn ich jedoch versuche, zwei Arrays zusammen mit der Join() -Funktion zu verbinden, produziert es eine Ausgabe, die ich nicht zu verstehen scheinen. Kann jemand erklären? Hier ist der Beispielcode:

<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/

Antwort

7

Dies liegt daran, dass man ein Array Füge- und vorbei in einer anderen Anordnung als Trenn:

fruits.join(food); 

Der Ausgang ist eigentlich zu erwarten, für jede 'Frucht', die du hast, legst du das ganze Futterarray dazwischen.

Wenn Sie die beiden Arrays zusammenführen möchten, verwenden Sie concat:

var newArray = fruits.concat(food); 

Jetzt können Sie die newArray beitreten und es wird von jedem Array nur eine Kopie jedes Elements haben.

Working example with concat

+1

Das ist die richtige Antwort ist, braucht eine Zeichenfolge zu verbinden als ein Argument als Trennzeichen wie „“ (Leerzeichen verwendet werden) oder "|" , aber das Übergeben des Arrays selbst verletzt den Zweck der Join-Methode. –