【发布时间】:2021-12-30 08:35:43
【问题描述】:
我想通过 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 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
预期输出:
resultArray = ['VerstappenRedBull','HamiltonMercedes Benz','RaikkonenMcLaren','BottasFerrari','Lando NorrisAston Martin','LeclercAlpha Tauri','RicciardoRed Bull','VettelMercedes-Benz','StrollMcLaren','TsunodaFerrari'];
或者类似的东西,我只是想看看我是否可以使用 for 循环将一个驱动程序与一种涂装连接起来。
【问题讨论】:
-
当你只想要 一个 元素时,为什么
arrays2会有一个循环? -
预期的输出是什么样的?
-
要向数组中添加新项,您需要使用 Array.push,而不是等号。所以应该是
resultArray.push( arrays[i].concat(arrays2[j]) )- 这是前进的一步。 -
除了@Andreas 已经问过的内容之外,由于驱动程序数组和制服数组的长度不同,分配团队的标准应该是什么?每个车手都有一个随机选择的团队吗?司机[0] 得到制服[0],司机[1] 得到制服[1]……司机[5] 得到制服[5] 然后司机[6] 得到制服[0] 等等?
-
1.您为 resultArray 分配一个新值的每个循环。如果您想使用
push()方法 2 向数组添加新元素。如果有意义的话,字符串的工作方式几乎与 JavaScript 中的数组一样。你concat()每个循环有两个字符串。 3. 你不想创建一个对象数组吗? 4. 将驾驶员分配给涂装(1 辆涂装可以有 2-3 名驾驶员)而不是涂装分配给驾驶员不是更有意义吗?
标签: javascript arrays for-loop