接受函数作为参数
function transform(fn, arr) {
let result = [];
for (let el of arr) {
result.push(fn(el)); // We push the result of the transformed item to result
}
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]