不理解我在forLoop函数中缺少的东西

时间:2017-04-07 22:24:34

标签: javascript arrays for-loop

我一直试图通过多次重写我的forLoop来解决这个问题,例如在线查看,甚至检查出MDN并得到了我需要帮助的点。

现在我得到的测试错误是:

1) loops forLoop(array) adds `"I am ${i} strange loop${i === 0 ? '' : 's'}."` to an array 2
 5 times:                                                                                     
 ReferenceError: forLoop is not defined

我目前的代码如下:

function forLoop(array){
 var newArr = [];
 for (var i = 0; i < array.length; i++){
  if (i === 1) {
   newArr.push("I am 1 strange loop.")
  } else {
   newArr.push(`I am ${i} strange loop${i === 0 ? '' : 's'}.`)
  }
 }
 return newArr
}

思考过程:

  1. 我需要一个循环来迭代正在放置的数组。
  2. 每次循环时我都需要一个新数组来输入内容。
  3. 调用for循环。将i设置为0,因为我们将从那里开始。
  4. 找到小于array.length
  5. 的终点
  6. 放置增量,因为每次循环时我们将从0开始上升。
  7. 制作if和else语句
  8. 将if if语句添加到新数组
  9. 最后返回新数组
  10. 有什么我不理解或缺失的东西吗?真的好像不能破解这个。

    有关测试的其他信息。对此问题的测试是:

    describe('forLoop(array)', () => {
     it('adds `"I am ${i} strange loop${i === 0 ? \'\' : \'s\'}."` to an array 25   times', () => {
      const [array, t] = makeArray()
      const strangeArray = forLoop(array)
    
      expect(strangeArray.length).to.equal(t + 25)
    
      const testArray = strangeArray.slice(array.length)
    
      for (let i = 0, l = testArray.length; i < l; i++) {
        let s = i === 1 ? "I am 1 strange loop." : `I am ${i} strange loops.`
        expect(testArray[i]).to.equal(s)
      }
    })
    }) 
    

1 个答案:

答案 0 :(得分:1)

ReferenceError: forLoop is not defined表示Javascript解释器无法找到“forLoop”函数。

可能的原因:

  • 测试和功能不在同一个文件中,并且在包含包含该功能的文件时出错。确保在测试文件之前包含带有该功能的文件。

  • 测试无法访问该功能,因为它与您的应用程序的范围不同。

我自己测试了forLoop功能,它对我有用。我不认为问题出在forLoop函数中。