Выбор ответа Middle Функции высшего порядка обновлено

map(parseInt)

Вопрос

Что вернёт выражение?

['1', '2', '3'].map(parseInt);

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: [1, NaN, NaN]. map вызывает колбэк с тремя аргументами: элемент, индекс, массив. parseInt принимает второй аргумент как основание системы счисления.

Варианты ответа

  1. [1, 2, 3]
  2. [1, NaN, NaN]правильный ответ
  3. [NaN, NaN, NaN]
  4. ['1', '2', '3']

Разбор

map вызывает колбэк с тремя аргументами: элемент, индекс, массив. parseInt принимает второй аргумент как основание системы счисления. Получаются вызовы parseInt('1', 0) (0 значит «основание по умолчанию», результат 1), parseInt('2', 1) (основание 1 недопустимо, NaN) и parseInt('3', 2) (цифры 3 в двоичной системе нет, NaN). Исправление: .map(Number) или .map((s) => parseInt(s, 10)).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.