javascript - 获取文本小于 1024 个字符的 reddit 帖子
问题描述
`我正在尝试将 reddit 帖子提取到我的不和谐机器人上,但只想要帖子文本小于 1024 个字符的帖子,因为这是 RichEmbed 中 .addField 的限制。我该怎么做呢?
目前我有:
const allowed = message.channel.nsfw ? body.data.children :
body.data.children.filter(post => !post.data.over_18);
const postlength = body.data.children.filter(post =>
!post.data.selftext.length > 1024);
if (!postlength && !allowed.length)
return message.channel.send('It seems we are out of fresh memes!, Try again later.');
const randomnumber = Math.floor(Math.random() * allowed.length)
const embed = new Discord.RichEmbed()
.setColor(0x00A2E8)
.setTitle(allowed[randomnumber].data.title)
.setDescription("Posted by: " + allowed[randomnumber].data.author)
.addField("Post: ", allowed[randomnumber].data.selftext + allowed[randomnumber].data.selftext.length)
.setImage(allowed[randomnumber].data.url)
.addField("Other info:", "Up votes: " + allowed[randomnumber].data.ups + " / Comments: " + allowed[randomnumber].data.num_comments)
.setFooter("Memes provided by r/dankmemes")
message.channel.send(embed)
我的变量postlength
是我尝试过滤掉 reddit 帖子的地方,但它似乎没有效果。
解决方案
解决方案
你正在做的
filter(post => !post.data.selftext.length > 1024);
这将检查是否false
大于1024
. 我假设您想归档并获取所有长度小于 1024 的帖子?
将您的代码更改为...
filter(post => post.data.selftext.length < 1024);
解释
当您在属性前添加感叹号时!
,您将反转其真实性。如果不是,某些事情将是真实的
- 一个空字符串
- 0
- 无效的
- 不明确的
- “错误的”
- 错误的
在您的情况下,您将反转一个不适合上述内容的字符串,因此除非长度实际上为 0,否则它将被转换为 false:
!post.data.selftext.length
推荐阅读
- javascript - 如何处理“不推荐使用承诺拒绝”
- java - Java on double:如果要计算的数字或表达式很多,如何正确实现“d”或“D”?
- php - ErrorException:未定义的变量:天
- r - 在 Jupyter Notebook 上安装 R 语言
- javascript - 在 react-draft-wysiwyg 上使用 formik
- javascript - 为什么这个 SSE 处理程序会导致客户端连接卡在挂起状态?
- android - 无法在 Android Studio 中格式化部分 TextView 或 Button 文本
- python - 如何将 sqlalchemy 查询作为字典返回?
- c# - 如何验证检查日期时间输入是否为 ISO 8601
- c++ - 如何获取当前目录并将其分配给linux中的变量