【问题标题】:Extracting values from multiple scope inside an array从数组内的多个范围中提取值
【发布时间】:2020-06-25 00:29:12
【问题描述】:

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

输入指令查看私信

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

终端输出(事件数组内的多重作用域)

{
  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]
    }
  ]
}

获取直接消息的内容

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

私信内容

{
  text: 'Abcd',
  entities: { hashtags: [], symbols: [], user_mentions: [], urls: [] }
}

我想像在第三个代码块中一样将 id 作为 let 获取。

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    您可以像这样简单地使用地图数组函数来转换对象

    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) 
    }
    

    【讨论】:

    • 谢谢你,你救了我。有没有更推荐的 JS 函数?
    • every()some()includes() 是一些其他有用的数组函数,它们分别类似于 C# Linq 中的 All()Any()Contains(),其中作为 map, filter 和 reduce 分别相当于 Select()Find()Aggregate()。有关所有数组列表的完整列表,请查看此处,developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多