想搞个 V2 的线下聚会,要收集一整页参与评论的人员(不重复),然后一次 at 完
码农嘛,整天想玩玩自己的代码搞事情
突发奇想搞个小比赛,要求如下:
我自己写一个,抛砖引玉吧
Object.keys($('#Main .box .dark').toArray().reduce(function(obj, c) {
obj['@' + $(c).text()] = 1;
return obj;
}, {})).join('\n')
正在 V2 摸鱼的同学,线上打怪任务来了!
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
1
jera Dec 25, 2018 都用 JQuery 了,几千行是有了吧。
|
3
johnnyNg Dec 25, 2018
```javascript
document .querySelectorAll('#Main .box .dark') .map(el => `@${el.innerHtml}`) .join('\n') ``` |
4
yuanfnadi Dec 25, 2018
[...new Set(Array.from(document.querySelectorAll('#Main .box .dark')).map(o=>(`@${o.text}`)))].join("\n")
|
6
johnnyNg Dec 25, 2018
|
7
royzxq Dec 25, 2018
[].slice.call($$('#Main a.dark')).reduce((all, it) => {
if (!all.includes('@' + it.text)) { all.push('@' + it.text) } return all; }, []).join(' '); #4 学习了 |
8
123s Dec 25, 2018
不要 at 我看看
|
9
123s Dec 25, 2018
没有 at 的也会算上啊
|
10
johnnyNg Dec 25, 2018
@yuanfnadi
是的,没有试一下,还忽略了去重 [ ...new Set( [...document.querySelectorAll('#Main .box .dark')].map(el => `@${el.text}`) ) ].join('\n') 你的差不多是最优解了 |
11
wildnode Dec 25, 2018
Chrome 控制台版本,可以省去冗长的 document. querySelectorAll
另外缩减了一下选择器长度,跑了几个帖子貌似没啥问题 2333 [...new Set($$('#Main .dark').map(i => `@${i.text}`))].join('\n') |
12
jydeng Dec 25, 2018
学习了
|
13
no1xsyzy Dec 25, 2018
在 v2 你甚至可以玩 codegolf ……
61 bytes [...new Set($$('#Main .dark').map(e=>"@"+e.text))].join('\n') 注意模板字符串只有在两边都有添加文本的时候更短 |