接受函式作為引數

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]