我正在编写一个 javascript 应用程序并且有 3 个用户选择的数字,我坚持用一种方法来确定天气这些数字都在彼此的正负 5 范围内。
问问题
91 次
2 回答
2
function(num1, num2, num3) {
var array = [num1, num2, num3];
array.sort();
return Math.abs(array[0] - array[array.length - 1]) <= 5;
}
[编辑*] 如果我误解了你的目的,另一个改进版本:
function calculate() {
var array = new Array();
for(var i = 0; i < arguments.length; i++) {
// put every argument in a array
array.push(arguments[i]);
}
// sorting in ascending order
array.sort(function(a, b) { return a - b; });
var interval = array.length - 1;
// math part
return Math.abs(array[0] - array[interval]) <= interval * 5;
}
ex: calculate(4, 15, 7); // you'll get false
calculate(6, 10, 9, 16); // true
于 2013-10-09T08:31:58.263 回答
0
不确定最低和最高数字之间的差异是否必须在 5 以内,或者是否所有数字都必须在 5 以内。由于@Banana-In-Black 涵盖了一个解决方案,因此我采用了另一种方式:
这确保每个数字之间不超过 5 个(不仅仅是最低和最高)
var withinFive = function(num1, num2, num3) {
var diff1 = Math.abs(num1 - num2);
var diff2 = Math.abs(num2 - num3);
return (diff1 <= 5 && diff2 <=5);
};
console.log(withinFive(1,2,7));
所以在这个例子中{1,2} is <= 5
,{2,7} <= 5
所以函数返回true
于 2013-10-09T09:05:14.630 回答