@MeMoJlor

Как работает этот отрезок кода?

Добрый день. Есть рабочий код, но принцип работы не очень ясна.
const plusOne = (digits) => {
  let count = digits.length - 1;
  for(let i = count; i >= 0; i--) {
    digits[i]++;
    if( digits[i] > 9 ){
      digits[i] = 0;
    } else{
      return digits;
    }
  }
  digits.splice(0,0,1)
  return digits
};
console.log(plusOne([9])) // 1, 0
console.log(plusOne([3, 5])) // 3, 6


При вводе числа "9", функция возвращает "1, 0".
Но при вводе допустим чисел "3,5" функция возвращает "3.6". Нет, это не ошибка, так надо, но вопрос в том, почему splice не вставляет единицу? По моей логике функция должна возвратить "1, 3, 6".

Так же вызывает вопрос запись. Когда я пытаюсь сократить запись, функция работает по разному.
Так код работает:
digits.splice(0,0,1)
  return digits

Так не работает:
return digits.splice(0,0,1)
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.

Так не работает
return digits.splice(0,0,1)

Ну так почитайте что метод splice возвращает. Либо в консоли поупражняйтесь. Само собой не работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы