Entschuldigung für den verwirrenden Titel, aber ich bin mir nicht sicher, wie ich das allein im Titel erklären soll. Ich möchte ein neues Array aus zwei anderen Arrays mit Wörtern zwischen den beiden erstellen. Mit anderen Worten, ich möchte im Grunde Folgendes erstellen:

Var author_title = ["Autoren [i] haben Bücher [i] geschrieben"];

Ein Wert des Arrays wäre also "Tolstoi hat Krieg und Frieden geschrieben". Offensichtlich funktioniert der obige Code nicht, sonst wäre ich nicht hier. Wie kann ich diese beiden Arrays so kombinieren? Hier ist der Code, den ich bisher habe, abzüglich einiger HTML-Inhalte.

var books = ["War and Peace","Huckleberry Finn","The Return of the Native","A 
Christmas Carol","Exodus"];

var authors = [];

for (var i = 0; i < books.length; i++)
{

var name = prompt("What is the last name of the author who wrote " +books[i]+ 
"?");
authors.push(name);
}

document.write("***************************");

for (var i = 0; i < books.length; i++)
{

document.write("<br>");
document.write("Book: "+books[i]+ " Author: "+authors[i]);


}
document.write("<br>");
document.write("***************************");

for (var i = 0; i < books.length; i++)
{

var author_title = ["authors[i] wrote books[i]"];

}
1
Lucas Smallwood 19 Apr. 2018 im 19:31

3 Antworten

Beste Antwort

Ersetzen

for (var i = 0; i < books.length; i++)
{

var author_title = ["authors[i] wrote books[i]"];

}

Mit

var author_title = [];
for (var i = 0; i < books.length; i++)
{

author_title.push(authors[i] + " wrote " + books[i]);

} 
3
Ashok Bhaskar 19 Apr. 2018 im 16:37
const authorTitle = books.map((book, i) => `${authors[i]} wrote ${book}`);
1
ilsotov 19 Apr. 2018 im 16:40

Sie können dies auch mit map etwas eleganter lösen.

const books = ["War and Peace","Huckleberry Finn"];
const authors = ["Leo Tolstoy", "Mark Twain"];

const author_title = books.map((book, i) => `${authors[i]} wrote ${book}`);
console.log(author_title)
0
AnilRedshift 19 Apr. 2018 im 16:42