PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Ajax
[問題] 請教幾個 JavaScript 的問題
作者:
lingsyou
2021-09-28 07:29:45
身邊沒有人寫 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}
先謝謝大家了!
作者:
icydream
(巧虎)
2021-09-28 08:25:00
第1題可用reduce第2題是[],不是大括號(題目打錯了)最靠近50是要靠多近呢?
作者:
laechan
(揮淚斬馬雲)
2021-09-28 10:17:00
第一題,先土法煉鋼,再看能否寫進內函數?第一題先宣告一個比方 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的開根號整數
作者:
lingsyou
2021-09-29 00:33:00
真的非常謝謝大家!!第一題 我試了 reduce 看來是可以的!
https://i.imgur.c
om/BadTE34.jpg
https://i.imgur.com/R1bvA7P.jpg
第二題謝謝 laechan 大大的方法!
作者:
GlobeTrekker
2021-09-29 03:19:00
第一題用map更適合其問題的本質
作者:
BugofBook
(數學書蟲)
2021-09-29 15:43:00
輸入是array輸出是object,不能用map只能用reduce
作者:
GlobeTrekker
2021-09-29 18:59:00
喔喔喔喔喔,對吼,謝謝!
作者:
icydream
(巧虎)
2021-10-01 12:29:00
https://imgur.com/a/Zn1jWOu
reduce這樣使用比較好一些
作者:
GlobeTrekker
2021-10-01 15:34:00
推樓上
作者:
eight0
(欸XD)
2021-10-01 20:45:00
用 Object.entries
https://is.gd/WcG1rX
繼續閱讀
[問題] 請問這段 JS 語法是怎麼做到的
capacitor
[js]youtube網頁的ajax累死人,但我還是破解了!
southknight
[ js ] 請問這段程式語法代表的意思
hth9494
Re: [問題] 關於填入欄位會消失的狀況?
microloft
[問題] 關於填入欄位會消失的狀況?
secretfly
[教學] JavaScript 臉部辨識、即時視訊影像處理
pply
[情報] 軟體工程師交流群組、社群
miinux
[問題] Atom 執行錯誤出現亂碼
neil0123
[問題] 該如何按下不是btn的原件?
neiltsang
[情報] JavaScript 2020大調查
pionlang5566
Links
booklink
Contact Us: admin [ a t ] ucptt.com