我正在编码挑战。有一段代码与测试一起编写,以测试该代码。我对编码非常陌生,不确定从哪里开始。
我得到的错误是:“您应该能够确定项目在数组中的位置”‣
AssertionError: expected undefined to deeply equal 2
我尝试声明变量并编写循环,但被告知这些不是解决此问题的方法。我的目标是使测试通过。
这是编写的代码部分:
exports = typeof window === 'undefined' ? global : window;
exports.arraysAnswers = {
indexOf: function(arr, item) {
},
这是tests文件夹中的代码:
if ( typeof window === 'undefined' ) {
require('../../app/arrays');
var expect = require('chai').expect;
}
describe('arrays', function() {
var a;
beforeEach(function() {
a = [ 1, 2, 3, 4 ];
});
it('you should be able to determine the location of an item in an array', function() {
expect(arraysAnswers.indexOf(a, 3)).to.eql(2);
expect(arraysAnswers.indexOf(a, 5)).to.eql(-1);
});
我希望考试能够通过,但不知道应该从哪里开始。任何帮助表示赞赏。
答案 0 :(得分:0)
您需要从indexOf
函数返回一些信息:
indexOf: function(arr, item) {
let index = -1;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
index = i;
break;
}
}
return index;
}
就像JavaScript中的本机indexOf
函数一样,如果找不到该项目,它将返回-1
。