@MihailDonskoy

Почему не работает реверс в переменной chislo2?

function palintrop(){
    var arr = [];
    var chislo;
    var chislo2;
    var str;
    for(var i=1;i<1000;i++){
        str = i.toString();
        chislo = str.split("");
        chislo2 = chislo.reverse();
        if(chislo==chislo2 && chislo.length>=2){
            arr.push(i);
        }
    }
    console.log(arr);
}
palintrop();
  • Вопрос задан
  • 651 просмотр
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
array.reverse()

Разворачивает оригинальный массив, на выходе у вас 2 одинаковы массива - развернутых в обратную сторону.

Так же присвоение массива с массиву - делает ссылку на оригинал.
Поэтому chislo2 всегда будет равняться тому что в оригинальном массиве.

Итого получить правильный результат можно только так:
var chislo = str.split("");
var chislo2 = chislo.reverse().slice(0);
chislo.reverse();


развернуть массив, сделать slice чтобы chislo2 не являлось ссылкой.
А затем развернуть первый массив обратно.
Ответ написан
Ваш ответ на вопрос

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

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