推 icydream: 第1題可用reduce 09/28 08:25
→ icydream: 第2題是[],不是大括號(題目打錯了) 09/28 08:26
→ icydream: 最靠近50是要靠多近呢? 09/28 08:27
→ laechan: 第一題,先土法煉鋼,再看能否寫進內函數? 09/28 10:17
→ laechan: 第一題先宣告一個比方 copy={}; 09/28 10:28
→ laechan: arr.forEach(function(a){copy[a["name"]]=a["age"];}); 09/28 10:28
→ laechan: 這樣 copy 的輸出結果: copy={"sam":16,"may":20} 09/28 10:28
→ laechan: 第二題,可以讓每個元素與50相減後的值當key值,arr內的元 09/28 11:09
→ laechan: 素當對映值,比方 {"10":40, "18":32, "-5":55, ... } 09/28 11:09
→ laechan: 然後對這東西的Object.keys值做sort,用Math.abs比大小 09/28 11:10
→ laechan: return c1 > c2 ? 1 : c1 < c2 ? -1 : 0; 09/28 11:10
→ laechan: 這樣比完後 "-5" 就會在最前面, 再來是 "10", 再來 "11" 09/28 11:10
→ laechan: 則叫出 "-5" 對映的值 55 就行了 09/28 11:11
→ laechan: 若要更簡短就是arr.forEach(function(a){直接在裡面做比 09/28 11:16
→ laechan: 大小(abs)及排序,這樣應該更快,我改一下 09/28 11:16
→ laechan: 要得出前 3 個的3這個數字,或可用arr.length的開根號整數 09/28 11:24
→ lingsyou: 真的非常謝謝大家!! 09/29 00:33
→ lingsyou: om/BadTE34.jpg 09/29 00:45
→ lingsyou: 第二題謝謝 laechan 大大的方法! 09/29 00:47
推 GlobeTrekker: 第一題用map更適合其問題的本質 09/29 03:19
→ BugofBook: 輸入是array輸出是object,不能用map只能用reduce 09/29 15:43
推 GlobeTrekker: 喔喔喔喔喔,對吼,謝謝! 09/29 18:59
→ icydream: reduce這樣使用比較好一些 10/01 12:29
推 GlobeTrekker: 推樓上 10/01 15:34