Исследование поведения основных методов массивов и объектов в JavaScript

Map преобразует элементы, filter отбирает их, some/every проверяют условие, includes ищет значение. Unshift и splice изменяют массив, slice возвращает копию части.

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

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

Map преобразует элементы, filter отбирает их, some/every проверяют условие, includes ищет значение. Unshift и splice изменяют массив, slice возвращает копию части.

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

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

Условие

Подставьте вместо знаков вопроса подходящие аргументы или функции и укажите, какой результат вернёт каждый вызов:

[1, 2, 3].map(?)          // ?
[1, 2, 3].filter(?)       // ?
[1, 2, 3].some(?)         // ?
[1, 2, 3].every(?)        // ?
[1, 2, 3].includes(?)     // ?

[1, 2, 3].unshift(?)      // ?
[1, 2, 3].slice(?)        // ?
[1, 2, 3].splice(?)       // ?

Object.create(?)          // ?
Object.assign(?)          // ?
Object.prototype.hasOwnProperty(?)  // ?

Ответ

Map преобразует элементы, filter отбирает их, some/every проверяют условие, includes ищет значение. Unshift и splice изменяют массив, slice возвращает копию части.

Примеры независимых вызовов:

[1,2,3].map(x => x * 2); // [2,4,6]
[1,2,3].filter(x => x > 1); // [2,3]
[1,2,3].some(x => x === 2); // true
[1,2,3].every(x => x > 0); // true
[1,2,3].includes(4); // false
[1,2,3].unshift(0); // 4 — новая длина
[1,2,3].slice(1); // [2,3]
[1,2,3].splice(1,1); // [2] — удалённые элементы
Object.create(null); // объект без прототипа
Object.assign({}, { a: 1 }); // { a: 1 }
Object.prototype.hasOwnProperty.call({ a: 1 }, 'a'); // true

У последнего метода важен this: прямой вызов из условия проверял бы свойство самого Object.prototype.

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

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

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

Подробнее