作为学习练习的一部分,我正在尝试创建一个带有 For 循环的函数。该函数返回一个新的数组变量合并并匹配数组musicians
和instruments
的索引值。所以预期回报应该是字符串:"约翰列侬弹吉他">
这是我的尝试,但我一直未能获得回报:
var musicians = ["John Lennon", "Paul McCartney", "George Harrison", "Ringo Starr"]
var instruments = ["Guitar", "Bass Guitar", "Lead Guitar", "Drums"]
function theBeatlesPlay(musicians, instruments) {
for (let i=0; i<musicians.length; i++) {
var newMusicians = musicians[i]
var newInstruments = instruments[i]
}
console.log(newMusicians[i] + "plays" + instruments[i])
}
你在循环的每次迭代中都会覆盖变量。您需要创建一个空数组并填充它(然后返回它(:
var musicians = ["John Lennon", "Paul McCartney", "George Harrison", "Ringo Starr"]
var instruments = ["Guitar", "Bass Guitar", "Lead Guitar", "Drums"]
function theBeatlesPlay(musicians, instruments) {
var combinations = [];
for (let i = 0; i < musicians.length; i++) {
combinations.push(musicians[i] + ' plays ' + instruments[i]);
}
return combinations;
}
console.log(theBeatlesPlay(musicians, instruments));
有几个问题。
该函数需要返回合并的数组。其次,该函数从未被调用。您可能不需要在循环中再次创建变量
var musicians = ["John Lennon", "Paul McCartney", "George Harrison", "Ringo Starr"]
var instruments = ["Guitar", "Bass Guitar", "Lead Guitar", "Drums"]
function theBeatlesPlay(musicians, instruments) {
var mergedArray = [];
for (let i = 0; i < musicians.length; i++) {
mergedArray.push(musicians[i] + " plays " + instruments[i])
}
return mergedArray;
}
console.log(theBeatlesPlay(musicians, instruments))
根据您的代码进行一些观察:
- 在 for 循环中的每个语句后添加
;
,以获得良好的编码实践。 - 将
console.log
语句放在循环for
因为它将打印在 for 循环中迭代的值。 - 而不是
newMusicians[i]
在控制台中使用newMusicians
.log。
var musicians = ["John Lennon", "Paul McCartney", "George Harrison", "Ringo Starr"]
var instruments = ["Guitar", "Bass Guitar", "Lead Guitar", "Drums"]
function theBeatlesPlay(musicians, instruments) {
for (let i = 0; i < musicians.length; i++) {
var newMusicians = musicians[i];
var newInstruments = instruments[i];
console.log(newMusicians + " plays " + instruments[i]);
}
}
theBeatlesPlay(musicians, instruments);
-
您需要将
console.log
放入for
循环中。 -
另外,
console.log(newMusicians + " plays " + instruments[i])
newMusicians
而不是在日志记录时newMusicians[i]
var musicians = ["John Lennon", "Paul McCartney", "George Harrison", "Ringo Starr"]
var instruments = ["Guitar", "Bass Guitar", "Lead Guitar", "Drums"]
function theBeatlesPlay(musicians, instruments) {
for (let i=0; i<musicians.length; i++) {
var newMusicians = musicians[i];
var newInstruments = instruments[i];
console.log(newMusicians + " plays " + instruments[i])
}
}
theBeatlesPlay(musicians, instruments);