@DrunkDog

Js массив как прописать return?

//
module.exports = function toReadable (number) {
    let a =  ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    let b = ['ten', 'eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen'];
    if (number < 10) return a[number];
    else if (9 < number < 20) return b[number];
}

Подскажите с b
else if (9 < number < 20) return b[number];как тут return правильно прописать
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ответы на вопрос 2
Dr_Elvis
@Dr_Elvis
В гугле забанен
А почему бы не объединить списки?
module.exports = function toReadable (number) {
    let a = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine','ten', 'eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen'];
    if (0 <= number && number < 20){
        return a[number];
    }
}


ну или если нужно именно 2 списка, то
module.exports = function toReadable (number) {
    let a = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    let b = ['ten', 'eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen'];
    if (0 <= number && number <= 9){
        return a[number];
    }
    else if(10 <= number && number < 20){
        return b[number-10];
    }
}
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Конструкция (9 < number < 20) в JS работает не так, как в Пайтоне.
Вместо того, чтобы вычислять нахождение числа между 9 и 20, JS сравнит 9 с переменной number, получит булево значение, которое приведёт к 0 или 1, а затем этот 0 или 1 сравнит с 20. В итоге условие будет всегда выполняться независимо от number. И, главное, ошибку никакую не выдаст, прожуёт, будто так и надо было.
Ответ написан
Ваш ответ на вопрос

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

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