2804. 数组原型的 forEach 方法 🔒
题目描述
编写一个数组方法 forEach,使其可以在任何数组上调用 array.forEach(callback, context) 方法,它将在数组的每个元素上执行回调函数。forEach 方法不应该返回任何内容。
回调函数 callback 接受以下参数:
value- 表示数组中当前正在处理的元素的值。index- 表示数组中当前正在处理的元素的索引。array- 表示数组本身,在回调函数内部可以访问整个数组。
上下文 context 应该是作为函数上下文参数传递给回调函数 callback 的对象,确保回调函数 callback 内部的 this 关键字引用此上下文对象。
尝试在不使用内置数组方法的情况下实现这个方法。
示例 1:
输入:
arr = [1,2,3], 
callback = (val, i, arr) => arr[i] = val * 2, 
context = {"context":true}
输出:[2,4,6]
解释:
arr.forEach(callback, context)  
console.log(arr) // [2,4,6]
回调函数在数组的每个元素上执行。
示例 2:
输入:
arr = [true, true, false, false], 
callback = (val, i, arr) => arr[i] = this, 
context = {"context": false}
输出:[{"context":false},{"context":false},{"context":false},{"context":false}]
解释:
arr.forEach(callback, context) 
console.log(arr) // [{"context":false},{"context":false},{"context":false},{"context":false}]
回调函数在数组的每个元素上以正确的上下文执行。
示例 3:
输入:
arr = [true, true, false, false], 
callback = (val, i, arr) => arr[i] = !val, 
context = {"context": 5}
输出:[false,false,true,true]
提示:
arr是一个有效的 JSON 数组context是一个有效的 JSON 对象fn是一个函数0 <= arr.length <= 105
解法
方法一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  |  |