function transform(fn, arr) { let result = []; for (let el of arr) { result.push(fn(el)); // 我们将转换后的项目的结果推入结果 } return result; } console.log(transform(x => x * 2, [1,2,3,4])); // [2,4,6,8]
如您所见,我们的transform函数接受两个参数,一个函数和一个集合。然后它将迭代该集合,并将值压入结果,并fn分别调用它们。
看起来很熟悉?这与工作原理非常相似!Array.prototype.map()
console.log([1, 2, 3, 4].map(x => x * 2)); // [2,4,6,8]