Как сделать вычисление разницы (не равна 1 или -1 – то вернуть false.)

Функцию isJumping, которая принимает число и возвращает строку JUMPING, если каждая цифра в числе отличается от соседней на 1, а если нет — строка NOT JUMPING.
Как написать эту логику, помогите, совсем запутался.

function isJumping(number) {
  let toStr = String(number);
  let previusNum = toStr[0];
  let current;
  for (let i = 1; i < toStr.length; i++) {
    current = Number(toStr[i]);
    let count = Math.abs(current - previusNum);
    if(count === 1 || count -1){
      return false
    }
  }
  return true
}

Ответы (1 шт):

Автор решения: Daniil Loban

в своем коде Вы забыли несколько моментов:

  • Math.abs не может вернуть -1
  • count === 1 || count -1 - это условие сработает если count будет равен единице либо если count будет больше единицы ( ||count -1)
  • Выходить с false (NOT JUMPING) нужно только если разница не совпадает с 1
  • Перенести текущее число в предыдущее чтобы цепочка не обрывалась

function isJumping(number) {
  let toStr = String(number);
  let previusNum = toStr[0];
  let current;
  for (let i = 1; i < toStr.length; i++) {
    current = Number(toStr[i]);
    let count = Math.abs(current - previusNum);
    // count может быть только положительным
    // выход только если не 1
    if(count !== 1){ 
      return 'NOT JUMPING'
    }
    previusNum = current // переносим в previusNum
  }
  return 'JUMPING'
}

console.log(isJumping(13))    // NOT JUMPING
console.log(isJumping(123))   // JUMPING
console.log(isJumping(12321)) // JUMPING
console.log(isJumping(1235))  // NOT JUMPING

Со своей стороны я считаю что раз задачка математическая а не строковая то и решать ее нужно математическими средствами

function isJumping(number) {
  let previusNum = number % 10
  number = Math.floor(number / 10) 
  while (number){
    current = number % 10
    number = Math.floor(number / 10) 
    if (Math.abs(current - previusNum) !== 1){
      return 'NOT JUMPING'
    }
    previusNum = current
  } 
  return 'JUMPING'
}

console.log(isJumping(13))    // NOT JUMPING
console.log(isJumping(123))   // JUMPING
console.log(isJumping(12321)) // JUMPING
console.log(isJumping(1235))  // NOT JUMPING

→ Ссылка