第一題,先土法煉鋼,再看能否寫進內函數?第一題先宣告一個比方 copy={};arr.forEach(function(a){copy[a["name"]]=a["age"];});這樣 copy 的輸出結果: copy={"sam":16,"may":20}第二題,可以讓每個元素與50相減後的值當key值,arr內的元素當對映值,比方 {"10":40, "18":32, "-5":55, ... }然後對這東西的Object.keys值做sort,用Math.abs比大小return c1 > c2 ? 1 : c1 < c2 ? -1 : 0;這樣比完後 "-5" 就會在最前面, 再來是 "10", 再來 "11"則叫出 "-5" 對映的值 55 就行了
https://i.imgur.com/ZMhDw4O.jpg若要更簡短就是arr.forEach(function(a){直接在裡面做比大小(abs)及排序,這樣應該更快,我改一下
https://i.imgur.com/3E138hy.jpg要得出前 3 個的3這個數字,或可用arr.length的開根號整數