我已经阅读了很多,但我仍然无法弄清楚我做错了什么。
我需要创建一个检查数字列表并查看哪个数字最大的函数。它还应该包括负值,重复值和空数组。
这是发送这些“任务”的茉莉花任务:
describe('List', function() {
'use strict';
var list;
beforeEach(function() {
list = new List();
});
it('should find the largest element', function() {
var data = [1, 100, 32, 453, 21, 5, 23, 12, 90];
expect(list.findLargest(data)).toBe(453);
});
it('should cover negative values', function() {
var data = [-1, -123, -2, -6, -10000, -10];
expect(list.findLargest(data)).toBe(-1);
});
it('should cover duplicated values', function() {
var data = [-1, -123, -1, -6, -10000, -1];
expect(list.findLargest(data)).toBe(-1);
});
it('should cover all duplicated values', function() {
var data = [3, 3, 3, 3, 3, 3, 3, 3, 3];
expect(list.findLargest(data)).toBe(3);
});
it('should cover empty list', function() {
expect(function() {
list.findLargest([]);
}).toThrow('List cannot be empty.');
});
});
这是我的尝试:
var List = function() {
'use strict';
function findLargest(list) {
var largest = [];
if( list[i] > 0){
for (var i = 0; i < list.length; i++) {
if (largest < list[i] ) {
largest = list[i];
}
}
console.log(largest);
return 453; //First tried this, but it doesn't even go into this function
//return largest; //Doesn't work
}
else if( list[i] < 0 ){
console.log("negative");
for (var i = 0; i < list.length; i++) {
if (largest > list[i] ) {
largest = list[i];
}
}
console.log(largest);
return largest;
}
// else {
// throw("List cannot be empty.");
// }
}
return {
findLargest: findLargest
};
};
这是我得到的错误: https://imgur.com/a/MZ0Xk
如果我取消评论我的else
,我会得到:
List cannot be empty. thrown
好像没有进入这个功能。我看不出问题,我要JavaScript抱歉。
答案 0 :(得分:0)
您可以使用基本数学函数为您执行此操作。无需单独的功能。
const highest = Math.max.apply( null, [1, 100, 32, 453, 21, 5, 23, 12, 90] ); // 453
和
const lowest = Math.min.apply( null, [-1, -123, -2, -6, -10000, -10] ); // -10000