[英]How to concatenate two arrays using for loops on javascript?
我想通過 for 循環合並兩個 arrays 並將它們分配到一個新數組中。
我有這兩個 arrays:
const drivers = ['Verstappen', 'Hamilton', 'Raikkonen', 'Bottas', 'Lando Norris', 'Leclerc', 'Ricciardo', 'Vettel', 'Stroll', 'Tsunoda'];
const livery = ['Red Bull', 'Mercedes-Benz', 'McLaren', 'Ferrari', 'Aston Martin', 'Alpha Tauri'];
我想為這些“驅動程序”中的每一個分配一個制服(不一定是他們代表的真實的人),但是每次我嘗試調整我的代碼時,我最終都會為每個驅動程序分配所有的制服,而我只想給他們一個或者我設法僅使用最后一個“制服”獲得陣列上的最后一個“驅動程序”。
我的代碼的所有版本通常都圍繞着這個:
const drivers = ['Verstappen', 'Hamilton', 'Raikkonen', 'Bottas', 'Lando Norris', 'Leclerc', 'Ricciardo', 'Vettel', 'Stroll', 'Tsunoda'];
const livery = ['Red Bull', 'Mercedes-Benz', 'McLaren', 'Ferrari', 'Aston Martin', 'Alpha Tauri'];
let resultArray = [];
const loopIndex = (arrays, arrays2) => {
for (i = 0; i < arrays.length; i++)
for (j = 0; j < arrays2.length; j++)
resultArray = arrays[i].concat(arrays2[j]);
};
loopIndex(drivers, livery);
console.log(resultArray); //Inputs TsunodaAlpha Tauri
預期 Output:
resultArray = ['VerstappenRedBull','HamiltonMercedes Benz','RaikkonenMcLaren','BottasFerrari','Lando NorrisAston Martin','LeclercAlpha Tauri','RicciardoRed Bull','VettelMercedes-Benz','StrollMcLaren','TsunodaFerrari'];
或者類似的東西,我只是想看看我是否可以使用 for 循環將一個驅動程序與一種塗裝連接起來。
一種方法如下
const drivers = ['Verstappen', 'Hamilton', 'Raikkonen', 'Bottas', 'Lando
Norris', 'Leclerc', 'Ricciardo', 'Vettel', 'Stroll', 'Tsunoda'];
const livery = ['Red Bull', 'Mercedes-Benz', 'McLaren', 'Ferrari', 'Aston
Martin', 'Alpha Tauri'];
let resultArray = [];
const loopIndex = (arrays, arrays2) => {
console.log(arrays,arrays2);
for (i = 0; i < arrays.length; i++)
resultArray.push(arrays[i])
for (j = 0; j < arrays2.length; j++)
resultArray.push(arrays2[j])
};
loopIndex(drivers, livery);
console.log(resultArray); //Inputs TsunodaAlpha Tauri
//結果如下(最終數組包含 16 個項目,第一個數組中的 10 個,第二個數組中的 6 個)
[1]: https://i.stack.imgur.com/sgrUk.png
如果要使用 for 循環,可以執行以下操作:
const drivers = ['Verstappen', 'Hamilton', 'Raikkonen', 'Bottas', 'Lando Norris', 'Leclerc', 'Ricciardo', 'Vettel', 'Stroll', 'Tsunoda']; const livery = ['Red Bull', 'Mercedes-Benz', 'McLaren', 'Ferrari', 'Aston Martin', 'Alpha Tauri']; const resultArray = []; for (let i = 0; i < drivers.length; i++) { const j = i % livery.length; resultArray.push(`${drivers[i]} | ${livery[j]}`); } /* or the slightly more compact version, using forEach: drivers.forEach((driver, index) => { const j = index % livery.length; resultArray.push(`${driver} | ${livery[j]}`); }) */ console.log(resultArray);
無論如何,我建議使用Array.prototype.map()
:
const drivers = ['Verstappen', 'Hamilton', 'Raikkonen', 'Bottas', 'Lando Norris', 'Leclerc', 'Ricciardo', 'Vettel', 'Stroll', 'Tsunoda']; const livery = ['Red Bull', 'Mercedes-Benz', 'McLaren', 'Ferrari', 'Aston Martin', 'Alpha Tauri']; const resultArray = drivers.map((driver, index) => { const j = index % livery.length; return `${driver} | ${livery[j]}` }); console.log(resultArray)
根據 Output 要求,您需要執行以下操作
const drivers = ['Verstappen', 'Hamilton', 'Raikkonen', 'Bottas',
'Lando Norris', 'Leclerc', 'Ricciardo', 'Vettel', 'Stroll', 'Tsunoda'];
const livery = ['Red Bull', 'Mercedes-Benz', 'McLaren', 'Ferrari',
'Aston Martin', 'Alpha Tauri'];
let resultArray = [];
const loopIndex = (arrays, arrays2) => {
arrays.forEach((arrayItem, i) =>
{
const j = i % arrays2.length;
resultArray.push(`${arrayItem}${arrays2[j]}`)
});
};
loopIndex(drivers, livery);
console.log(resultArray); //Inputs TsunodaAlpha Tauri
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.