gpt4 book ai didi

javascript - 从数组内的多个范围中提取值

转载 作者:行者123 更新时间:2023-12-04 09:36:27 24 4
gpt4 key购买 nike

我正在构建一个 twitter 机器人,它接受 DM 是我的帐户的某人的输入,然后将收到的 DM 输出到推文中。我正在使用来自 npm 的 twit 包。问题是,如何从输出中提取 id,然后在另一个函数中使用 id 来发布推文,使用? (请注意,我目前正在使用 console.log 作为推文)。

Input command to check the direct messages

var listMsg = T.get('direct_messages/events/list', {
count: '50'
}, function(data, response) {
console.log(response)

Output in terminal (the multiple scope inside the events array)

{
events: [
{
type: 'message_create',
id: '1275746339314216965', //take this
created_timestamp: '1592996604170',
message_create: [Object]
},
{
type: 'message_create',
id: '1274664227584671750', //and this
created_timestamp: '1592738608629',
message_create: [Object]
}
]
}

Getting the content of a direct message

var getMsg = T.get('direct_messages/events/show', {
id:'1274664227584671750' //put it to this
}, function(data, response) {
//console.log(response)
let dm = response.event.message_create.message_data
console.log(dm) //and print the message here

The content of the direct message

{
text: 'Abcd',
entities: { hashtags: [], symbols: [], user_mentions: [], urls: [] }
}
我想像在第三个代码块中一样将 id 作为 let 获取。

最佳答案

您可以像这样简单地使用映射数组函数来转换对象events.map( function(e) { return e.id})或者你可以使用 es6 语法 events.map(e=> e.id)两者都会返回这样的数组["1275746339314216965", "1274664227584671750"]这些可以像这样连接成一个字符串events.map(e=> e.id).join(",")返回"1275746339314216965,1274664227584671750"map()是一个很棒的功能尝试使用map reducefilter真正改善您的编程。这里有一篇很棒的文章 https://medium.com/poka-techblog/simplify-your-javascript-use-map-reduce-and-filter-bd02c593cc2d
当然,您也可以使用老式的 for 循环,但认为这有点冗长且不必要(该软件相当于制作自己的锤子)
例如

var ids = []
for(var event of events) {
ids.push(event.id)
}

关于javascript - 从数组内的多个范围中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62559537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com