Callback Function


(也請搜尋 「javascript callback 函式」。)

先在 nodejs 或瀏覽器的 console 裡面, 下 Math.random()*100 並且用上箭頭重複很多次。

    x = []
    x[9] = Math.floor(Math.random()*100)
    x[9] = Math.floor(Math.random()*100)
    x
    for (i=0; i<x.length; ++i) { x[i] = Math.floor(Math.random()*100); }
    x

    x.map(function (n) { return n/2; })
    x.map(function (n) { return n*2; })
    x.map(function (n) { return n%10; })
    // Q: 列出每個元素的十位數字

    x.filter(function (n) { return n <= 50; })
    x.filter(function (n) { return n > 50; })
    // Q: 抓出所有的偶數

    y = x.filter(function (n) { return n <= 30; })
    y.reduce(function(acc, n) { return acc + n; }, 0)
    y.reduce(function(acc, n) { return acc * n; }, 1)
    y.reduce(function(acc, n) { return acc < n ? n : acc; }, y[0])
    // Q: 找出 y 當中最接近 13.2 的數字

作業:

  1. 產生一個長度 20 的字串, 由一串小寫英文字母所構成。 存在變數 gibberish 裡面。 多試幾次, 確定從 a 到 z 都有產生過。 提示: 複習 基本語法 當中, 「把 ASCII 數值轉成字元」 的那個函數。
  2. 把上述 gibberish 當中的每個字母都向後推一位: a=>b, b=>c, ... z=>a 產生一個新字串。
  3. 把上述 gibberish 當中的母音字母都砍掉, 構成一個新字串。 提示: 'aeiou'.indexOf('o')
    x.sort()
    x.sort( function(a,b){ return a-b; } )
    x.sort( function(a,b){ return b-a; } )
    fruits = ['kiwi', 'papaya', 'guava', 'apple', 'banana', 'strawberry', 'watermelon']
    fruits.sort()
    fruits.sort( function(a,b) { return a.localeCompare(b); } )
    fruits.sort( function(a,b) { return -a.localeCompare(b); } )

作業: 根據最後一個字母對 fruits 排序; 若最後一個字母相同就看倒數第二個字母; ...。