Привет! Итак, в предыдущем блоге я рассказал, как создать полифилл для методов map, filter и reduceмассива. Если вы не читали, вот ссылка ниже 👇



Давайте программировать!

Полное заполнение для Array.forEach()

Давайте сначала посмотрим, как работает Array.forEach(), исходя из его синтаксиса:

array1.forEach(callback(element[, index[, array]]) {
  //callback function code
}, thisArg);

Итак, исходная функция Array.prototype.forEach принимает функцию обратного вызова и thisArg/context(значение для использования как this при выполнении callbackFn)в качестве аргумента.

В нашу функцию обратного вызова можно передать три аргумента:
a. текущее значение
б. индекс текущего значения [необязательный]
c. массив [необязательно]

На основе этого давайте создадим собственную функцию forEach :

Array.prototype.myForEach = function(callbackFn, context) {

  for (var i = 0; i < this.length; i++) { 
     /* call the callback function for every value of this array with the context provided
     */
    callbackFn.call(context, this[i], i, this));
  }
}

Если вам понравился этот пост, нажмите на значок аплодисментов👏ниже и подпишитесь на меня здесь, чтобы узнать больше!