Javascript 输出括号前面有nr id的嵌套数组

Javascript 输出括号前面有nr id的嵌套数组,javascript,mysql,node.js,arrays,nested,Javascript,Mysql,Node.js,Arrays,Nested,我是这方面的新手,我想问的是,如何从MySQL表中执行这个嵌套数组的示例以输出,就像这个javascript中用于node js express API的聊天示例一样,我使用的是vue cli 请参阅chatsMysql表: 这就是我想要实现的目标: chats: { SENDER ID -> 1: { isPinned: true, msg: [ { // this is me (sender)

我是这方面的新手,我想问的是,如何从MySQL表中执行这个嵌套数组的示例以输出,就像这个javascript中用于node js express API的聊天示例一样,我使用的是vue cli

请参阅
chats
Mysql表:

这就是我想要实现的目标:

 chats: {
 SENDER ID -> 1: {
          isPinned: true,
          msg: [
            { // this is me (sender)
              textContent: 'How can we help? We\'re here for you!',
              time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)',
              isSent: true,
              isSeen: true
            },
            { // this is the receiver
              textContent: 'Hey John, I am looking for the best admin template. Could you please help me to find it out?',
              time: 'Mon Dec 10 2018 07:45:23 GMT+0000 (GMT)',
              isSent: false,
              isSeen: true
            } 
          ]
        },
        2: {
          isPinned: false,
          msg: [
            {
              textContent: 'Hi',
              time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)',
              isSent: true,
              isSeen: true
            },
            {
              textContent: 'Hello. How can I help You?',
              time: 'Mon Dec 11 2018 07:45:15 GMT+0000 (GMT)',
              isSent: false,
              isSeen: true
            } 
          ]
        }
      }
这就是我到目前为止所做的: Mysql查询:

getChats: callBack => {
    pool.query(
      'SELECT * FROM chat WHERE reciever_userid=1 AND sender_userid=5 OR sender_userid=1 AND reciever_userid=5  ORDER BY time',
      [],
      (error, chats) => {
        if (error) {
          callBack(error)
        }
        return callBack(null, chats)
      }
    )
  }
Api调用:

 getChats((err, chatz) => {
  if (err) {
    console.log(err)
    return
  }   

  const chats = chatz.map(el => { 
    el.msg = {
      textContent    : el.textContent   || null,
      time           : el.time          || null,
      isSent         : el.isSent        || null,
      isSeen         : el.isSeen        || null
    } 
    delete el['status'] 
    delete el['sender_userid'] 
    delete el['reciever_userid'] 
    delete el['textContent'] 
    delete el['time'] 
    delete el['isSent'] 
    delete el['isSeen'] 
    delete el['id'] 
    return el
  }).flat()
    
  return res.json({
    chats
  })
})
《邮递员》中的结果并不是我在上面的例子中所期望的

    {
    "chats": [
        {
            "isPinned": "true",
            "msg": {
                "textContent": "heyyy",
                "time": "2020-10-07T15:04:40.000Z",
                "isSent": "true",
                "isSeen": "true"
            }
        },
        {
            "isPinned": "true",
            "msg": {
                "textContent": "yesss",
                "time": "2020-10-07T15:04:40.000Z",
                "isSent": "true",
                "isSeen": "true"
            }
        }
    ]
}

要匹配目标格式,请将“Api调用”代码更改为:

getChats((err, chatz) => {
    if (err) {
      console.log(err)
      return
    }   
  
    const chatsArray = chatz.map(el => { 
      el.msg = {
        textContent    : el.textContent   || null,
        time           : el.time          || null,
        isSent         : el.isSent        || null,
        isSeen         : el.isSeen        || null
      } 
      delete el['status'] 
      delete el['sender_userid'] 
      delete el['reciever_userid'] 
      delete el['textContent'] 
      delete el['time'] 
      delete el['isSent'] 
      delete el['isSeen'] 
      delete el['id'] 
      return el
    }).flat()

    let chats = {};
    chatsArray.forEach((chat, i) => chats[i + 1] = chat)
      
    return res.json({
      chats
    })
  })

所以问题是,您将聊天作为数组而不是带有索引的对象获取?或者msg是一个对象而不是数组?或者两者都有?我不知道;I don’我不知道热输出,如示例1所示:{在frontOk,检查我的回答谢谢你的时间!现在我得到了正确的结果。还有一件事,我从你的代码结果中看到,所有文本内容都是独立的,id 1和id 2或2到1的所有文本内容应该作为一个整体放在一起,就像achive示例中一样,可以实现吗?