Я хотел бы проверить, находится ли число в пределах 4 от целевого числа.

В настоящее время я делаю это следующим образом:

ДЕМО: https://jsfiddle.net/o0b99yys/

var targetNum = 32;
var newNum = 31;

if ((newNum > (targetNum + 4)) || (newNum < (targetNum - 4))) {
  alert('Error: number must be within 4 or target');
} else {
  alert('Success: number is within 4 or target');
}

Это кажется немного дилетантским. Есть ли более профессиональный способ сделать это?

2
user5483305 18 Дек 2015 в 16:15

3 ответа

Лучший ответ

Это решение выглядит лучше:

var targetNum = 32;
var newNum = 31;

if (Math.abs(targetNum - newNum) > 4) {
  alert('Error: number must be within 4 or target');
} else {
  alert('Success: number is within 4 or target');
}
3
Legionar 18 Дек 2015 в 13:23

Попробуйте это, если вы хотите упрощенные версии этих выражений:

var myNum = 32;
var newNum = 31;

Math.abs(myNum-newNum)>4 ? alert('Error: number must be within 4 or target') : alert('Success: number is within 4 or target');
0
Vinc 18 Дек 2015 в 13:34
    var targetNum = 32,
        newNum = 31,
        target_range_max = targetNum + 4,
        target_range_min = targetNum - 4;

    if ( target_range_min <= newNum && newNum <= target_range_max ) {
     alert('Success: number is within 4 or target');
    } else {
     alert('Error: number must be within 4 or target');
    }
1
andreasonny83 18 Дек 2015 в 13:39