Я начинаю с двух массивов равной длины, и я хотел бы создать новый массив, состоящий из вспомогательных массивов, каждый из которых выполнен из объединения элементов в каждый индекс обоих массивов. Вот что я имею в виду:Объединить элементы из двух массивов в подмассивы в третьем массиве
// the 2 initial arrays:
var arr1 = ["Quote1", "Quote2", "Quote3"];
var arr2 = ["Author1", "Author2", "Author3"];
// the output I need to achieve:
[ ["Quote1", "Author1"], ["Quote2", "Author2"], ["Quote3", "Author3"] ];
Проблема заключается в том, что мой код производит следующий вывод в console.log
:
Array [ Array[2], Array[2], Array[2] ]
Проблематика выход я получаю не показывает фактические значения каждого Subarray, он показывает только длину каждого подмассива.
Вот мой код:
var quotesArr = ["Quote 1", "Quote 2", "Quote 3"];
var authorsArr = ["Author 1", "Author 2", "Author 3"];
var quoteMeetsAuthor = [];
var quotesAndAuthors = [];
function combineArrays(quotes,authors) {
if (quotes.length != authors.length) {
console.log("Danger Will Robinson!");
return "Danger Will Robinson!";
}
for (i=0; i<quotes.length; i++) {
quoteMeetsAuthor.push(quotes[i]);
quoteMeetsAuthor.push(authors[i]);
quotesAndAuthors.push(quoteMeetsAuthor);
quoteMeetsAuthor = [];
}
console.log(quotesAndAuthors);
return quotesAndAuthors;
}
combineArrays(quotesArr, authorsArr);
Может
кто-нибудь дать совет?
Редактировать: Я хотел бы решить эту проблему с помощью ванильного javascript.
google zip javascript arrays. Многие библиотеки (lodash, underscore и т. Д.) Реализуют эту функцию, Рамда - моя любимая. –
Код выглядит отлично, и вывод в FireFox также правилен. – Kenney
Ваш код работает. Ваша консоль не отображает массив, как вы хотите. Используйте другой браузер, в котором есть консоль, которая ведет себя так, как вы хотите. Или стройте массив. – Oriol