Я новичок и все еще пытаюсь понять некоторые концепции. Я в основном должен переписать поведение функции map () с помощью цикла for.
Будучи упражнением с курса, мне уже была предоставлена часть кода:
// the global Array
var s = [23, 65, 98, 5];
Array.prototype.myMap = function(callback){
var newArray = [];
// Add your code below this line
// Add your code above this line
return newArray;
};
var new_s = s.myMap(function(item){
return item * 2;
});
console.log(new_s);
Я думал так: карта - это функция с функцией в качестве параметра, поэтому «обратный вызов» в скобках должен быть функцией, а ее цель - выполнить функцию для каждого элемента массива, который мне нужен действительно для цикла for и для передачи массива в качестве параметра.
так вот что я написал:
Array.prototype.myMap = function(callback){
var newArray = [];
// Add your code below this line
for(let i = 0; i < this.length; i++){
newArray.push(this[i].callback);
}
// Add your code above this line
return newArray;
}
Я в основном поставил цикл for, где «this» должен быть массивом, который использует функцию map (), но я не уверен, что это логически правильно. Затем я поместил в массив результат, полученный с помощью функции «обратного вызова» для фактического элемента в цикле.
К сожалению, результатом является массив пустых строк.
Вот что показывает консоль:
,,,
Заранее спасибо, надеюсь, вы поможете разобраться