JavaScript for loop 函数合并两个新数组



作为学习练习的一部分,我正在尝试创建一个带有 For 循环的函数。该函数返回一个新的数组变量合并并匹配数组musiciansinstruments的索引值。所以预期回报应该是字符串:"约翰列侬弹吉他">

这是我的尝试,但我一直未能获得回报:

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); 

  1. 您需要将console.log放入for循环中。

  2. 另外,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);

相关内容