[問題] 請教幾個 JavaScript 的問題

看板Ajax作者時間2年前 (2021/09/28 07:29), 編輯推噓6(6024)
留言30則, 6人參與, 2年前最新討論串1/1
身邊沒有人寫 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://www.ptt.cc/bbs/Ajax/M.1632785389.A.D65.html

09/28 08:25, 2年前 , 1F
第1題可用reduce
09/28 08:25, 1F

09/28 08:26, 2年前 , 2F
第2題是[],不是大括號(題目打錯了)
09/28 08:26, 2F

09/28 08:27, 2年前 , 3F
最靠近50是要靠多近呢?
09/28 08:27, 3F

09/28 10:17, 2年前 , 4F
第一題,先土法煉鋼,再看能否寫進內函數?
09/28 10:17, 4F

09/28 10:28, 2年前 , 5F
第一題先宣告一個比方 copy={};
09/28 10:28, 5F

09/28 10:28, 2年前 , 6F
arr.forEach(function(a){copy[a["name"]]=a["age"];});
09/28 10:28, 6F

09/28 10:28, 2年前 , 7F
這樣 copy 的輸出結果: copy={"sam":16,"may":20}
09/28 10:28, 7F

09/28 11:09, 2年前 , 8F
第二題,可以讓每個元素與50相減後的值當key值,arr內的元
09/28 11:09, 8F

09/28 11:09, 2年前 , 9F
素當對映值,比方 {"10":40, "18":32, "-5":55, ... }
09/28 11:09, 9F

09/28 11:10, 2年前 , 10F
然後對這東西的Object.keys值做sort,用Math.abs比大小
09/28 11:10, 10F

09/28 11:10, 2年前 , 11F
return c1 > c2 ? 1 : c1 < c2 ? -1 : 0;
09/28 11:10, 11F

09/28 11:10, 2年前 , 12F
這樣比完後 "-5" 就會在最前面, 再來是 "10", 再來 "11"
09/28 11:10, 12F

09/28 11:11, 2年前 , 13F
則叫出 "-5" 對映的值 55 就行了
09/28 11:11, 13F

09/28 11:12, 2年前 , 14F

09/28 11:16, 2年前 , 15F
若要更簡短就是arr.forEach(function(a){直接在裡面做比
09/28 11:16, 15F

09/28 11:16, 2年前 , 16F
大小(abs)及排序,這樣應該更快,我改一下
09/28 11:16, 16F

09/28 11:22, 2年前 , 17F

09/28 11:24, 2年前 , 18F
要得出前 3 個的3這個數字,或可用arr.length的開根號整數
09/28 11:24, 18F

09/29 00:33, 2年前 , 19F
真的非常謝謝大家!!
09/29 00:33, 19F

09/29 00:45, 2年前 , 20F
第一題 我試了 reduce 看來是可以的!https://i.imgur.c
09/29 00:45, 20F

09/29 00:45, 2年前 , 21F
om/BadTE34.jpg
09/29 00:45, 21F

09/29 00:46, 2年前 , 22F

09/29 00:47, 2年前 , 23F
第二題謝謝 laechan 大大的方法!
09/29 00:47, 23F

09/29 03:19, 2年前 , 24F
第一題用map更適合其問題的本質
09/29 03:19, 24F

09/29 15:43, 2年前 , 25F
輸入是array輸出是object,不能用map只能用reduce
09/29 15:43, 25F

09/29 18:59, 2年前 , 26F
喔喔喔喔喔,對吼,謝謝!
09/29 18:59, 26F

10/01 12:29, 2年前 , 27F

10/01 12:29, 2年前 , 28F
reduce這樣使用比較好一些
10/01 12:29, 28F

10/01 15:34, 2年前 , 29F
推樓上
10/01 15:34, 29F

10/01 20:45, 2年前 , 30F
用 Object.entries https://is.gd/WcG1rX
10/01 20:45, 30F
文章代碼(AID): #1XKbFjrb (Ajax)