Функция удвоения элементов массива

Для каждого элемента добавьте в результат две его копии подряд. Это не удвоение числового значения: [1, 2] должно превратиться в [1, 1, 2, 2].

Короткий ответ

Что ответить на собеседовании

Для каждого элемента добавьте в результат две его копии подряд. Это не удвоение числового значения: [1, 2] должно превратиться в [1, 1, 2, 2].

Подробный разбор

Ответ с пояснениями

Условие

Создайте функцию, принимающую массив (например, назовём его inputArray) и возвращающую новый массив, в котором каждый элемент исходного массива встречается два раза подряд.

Ответ

Для каждого элемента добавьте в результат две его копии подряд. Это не удвоение числового значения: [1, 2] должно превратиться в [1, 1, 2, 2].

function duplicateElements(inputArray) {
  const result = [];
  for (const item of inputArray) result.push(item, item);
  return result;
}

Исходный массив остаётся неизменным. Если элементы являются объектами, обе позиции хранят ту же ссылку: глубокого клонирования условие не требует. Для плотного массива возможна и запись inputArray.flatMap(item => [item, item]). У разреженных массивов её поведение отличается: flatMap пропускает пустые позиции, тогда как for...of выдаёт undefined.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее