2013-10-09 2 views
0

Я пишу приложение для javascript и имею 3 выбранных пользователем номера, Im застрял в способе определения погоды, все цифры находятся в пределах плюс и минус 5 друг от друга.Проверить номера находятся в диапазоне друг от друга

+2

Вы уже что-то пробовали? У вас есть код, который вы можете использовать? – Lix

+0

Нет, я действительно застрял в этом, пытаясь вычислить математику больше, чем код. – user2861858

+0

не могли бы вы привести один пример, как именно вы хотите? – Rahul

ответ

0

не был уверен, что если разница между самым низким и самым высоким числом должен быть в пределах 5, или если все числа должны были быть. Так как @ Банан-In-Блекли одно решение покрыто, я пошел другой путь:

Это гарантирует, что не более 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

+0

Спасибо, немного мод, и сейчас это работает отлично. – user2861858

2
function(num1, num2, num3) { 
    var array = [num1, num2, num3]; 
    array.sort(); 
    return Math.abs(array[0] - array[array.length - 1]) <= 5; 
} 

[Edit *] Другой улучшенный вариант, если я неправильно ур цели:

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 
+0

5 - разница между собой, поэтому в этом коде должно быть <= 10, я думаю, потому что есть 3 числа вместо 2? –

+1

Некоторые объяснения пройдут здесь долго ... Мы хотим обучить пользователей здесь и «сделать Интернет лучше», а не просто предоставить copy-pasta ... – Lix

+1

@ Lix Я действительно получил образование при чтении этого кода. Op должен сделать то же самое :) это не какой-то загадочный код –

Смежные вопросы