@elmira26

Почему при создании нового массива, запись начинается с 1 индекса?

Здравствуйте! Задание: даны 2 числа , напишите функцию возвращающую массив от a и b включительно.
Написала вот такую функцию ( она прогоняется через тестер и выдает ответ правильно/неправильно)

function numberNumber(a,b){

    var newArr = [];
    
      for(var i = a; i <= b; i++){
       
        newArr[i] = i * 1;
        
        }
        return newArr;
   }  /code>
проблема в том, что результат выдает такой: 
Тест №1...
tester.js:341 Ошибка: Неверный результат. При вызове numberNumber(1,5) получено [null,1,2,3,4,5], ожидалось [1,2,3,4,5]

Почему на 0 индексе получается значение null. Помогите пожалуйста!
Как сделать так чтобы запись в новый массив начиналась с 0 го индекса?
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@Sashqa
Потому что newArr[i] = i * 1;
а i == a, где a == 1
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
coderisimo
@coderisimo Куратор тега JavaScript
потому что 0-й элемент будет в массиве при любом раскладе. даже если вы начинаете с 1.
вы принудительно начали с индекса 1 , но 0 все равно будет создан )

Вот пример для пояснения. Мы добавляем только одно значение, но все предыдущие все равно создаются, просто они пустые :

5d5d541228aec663502293.jpeg

и еще - хоть мы добавили ОДНО значение,
r.length выведет 35
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Я вам таки даже больше скажу, если вызывать numberNumber(100,101), то запись вообще начнётся с индекса 100.
Ответ написан
Ваш ответ на вопрос

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

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