Привет! Итак, в предыдущем блоге я рассказал, как создать полифилл для методов 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)); } }
Если вам понравился этот пост, нажмите на значок аплодисментов👏ниже и подпишитесь на меня здесь, чтобы узнать больше!