2021-09-16 16:30:56
#junior
#js
#вопрос
Вопрос:
Как бы Вы реализовали метод map?
Ответ:
// создадим тестовый массив
const arr = ['el1', 'el2'];
// перезапишем метод map у глобального объекта Array на нашу функцию map
Array.prototype.map = function(callback) {
// присвоим в arr массив, на котором вызывается наш метод map
const arr = this;
// проверяем переданные параметры
if (!Array.isArray(arr) || !arr.length || typeof callback !== 'function') {
return []
} else {
let result = []
// мы создаем массив с результатами при каждом вызове функции
// поскольку мы не хотим менять оригинальный массив
for (let i = 0, len = arr.length; i < len; i++) {
result.push(callback(arr[i], i, arr))
// помещаем результаты сallback в result
}
return result
}
}
// проверяем работоспособность нашего метода map
const newArr = arr.map((el) => {
return el;
});
console.log(newArr); //['el1', 'el2'];
Этот пример на CodePen
Web Interview
301 viewsedited 13:30