【问题标题】:javascript for loop function to merge two new arrays.用于合并两个新数组的 javascript for 循环函数。
【发布时间】:2017-05-25 20:37:31
【问题描述】:

作为学习练习的一部分,我正在尝试创建一个带有 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])
  }

【问题讨论】:

  • console.log 应该在 for 循环内
  • 将 console.log 放在 for 循环中。此外,不需要这些变量。

标签: javascript arrays for-loop


【解决方案1】:

您在循环的每次迭代中都会覆盖您的变量。你需要创建一个空数组并填充它(然后返回它):

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

【讨论】:

    【解决方案2】:

    有几个问题。

    函数需要返回合并后的数组。 其次,该函数从未被调用。您可能不需要在循环内再次创建变量

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

    【讨论】:

      【解决方案3】:

      根据您的代码很少观察到:

      • 在 for 循环内的每个语句之后添加 ;,以获得良好的编码习惯。
      • console.log 语句放入for 循环中,因为它将打印在for 循环中迭代的值。
      • 在 console.log 中使用 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); 

      【讨论】:

        【解决方案4】:
        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);

        【讨论】:

          猜你喜欢
          • 2017-12-28
          • 1970-01-01
          • 2020-10-13
          • 2018-10-25
          • 2018-11-22
          • 1970-01-01
          • 1970-01-01
          • 2021-09-15
          • 1970-01-01
          相关资源
          最近更新 更多