作者lingsyou ()
看板Ajax
標題[問題] 請教幾個 JavaScript 的問題
時間Tue Sep 28 07:29:45 2021
身邊沒有人寫 JavaScript,好不容易找到這裡,希望大家可以幫幫忙 QQ ,實在是
找不到人問了
1. arr = [{name:'sam', age:16}, {name:'may', age:20}]
使輸出為 {sam: 16, may: 20}
2. 找出最靠近 50 的數字並輸出
const arr = {40, 32, 55, 16, 25, 74, 22, 13, 27, 41}
輸出為 {55, 41, 40}
先謝謝大家了!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 47.211.221.178 (美國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1632785389.A.D65.html
1F:推 icydream: 第1題可用reduce 09/28 08:25
2F:→ icydream: 第2題是[],不是大括號(題目打錯了) 09/28 08:26
3F:→ icydream: 最靠近50是要靠多近呢? 09/28 08:27
4F:→ laechan: 第一題,先土法煉鋼,再看能否寫進內函數? 09/28 10:17
5F:→ laechan: 第一題先宣告一個比方 copy={}; 09/28 10:28
6F:→ laechan: arr.forEach(function(a){copy[a["name"]]=a["age"];}); 09/28 10:28
7F:→ laechan: 這樣 copy 的輸出結果: copy={"sam":16,"may":20} 09/28 10:28
8F:→ laechan: 第二題,可以讓每個元素與50相減後的值當key值,arr內的元 09/28 11:09
9F:→ laechan: 素當對映值,比方 {"10":40, "18":32, "-5":55, ... } 09/28 11:09
10F:→ laechan: 然後對這東西的Object.keys值做sort,用Math.abs比大小 09/28 11:10
11F:→ laechan: return c1 > c2 ? 1 : c1 < c2 ? -1 : 0; 09/28 11:10
12F:→ laechan: 這樣比完後 "-5" 就會在最前面, 再來是 "10", 再來 "11" 09/28 11:10
13F:→ laechan: 則叫出 "-5" 對映的值 55 就行了 09/28 11:11
15F:→ laechan: 若要更簡短就是arr.forEach(function(a){直接在裡面做比 09/28 11:16
16F:→ laechan: 大小(abs)及排序,這樣應該更快,我改一下 09/28 11:16
18F:→ laechan: 要得出前 3 個的3這個數字,或可用arr.length的開根號整數 09/28 11:24
19F:→ lingsyou: 真的非常謝謝大家!! 09/29 00:33
21F:→ lingsyou: om/BadTE34.jpg 09/29 00:45
23F:→ lingsyou: 第二題謝謝 laechan 大大的方法! 09/29 00:47
24F:推 GlobeTrekker: 第一題用map更適合其問題的本質 09/29 03:19
25F:→ BugofBook: 輸入是array輸出是object,不能用map只能用reduce 09/29 15:43
26F:推 GlobeTrekker: 喔喔喔喔喔,對吼,謝謝! 09/29 18:59
28F:→ icydream: reduce這樣使用比較好一些 10/01 12:29
29F:推 GlobeTrekker: 推樓上 10/01 15:34