作者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/cn.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