精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用JS將聊天記錄聚合在一起

開發 前端
我們在QQ上聊天時,同一分鐘的聊天記錄會被放在一起展示,當我們發送消息時,每條消息的發送時間都會精確到秒,那么他是如何實現將這些數據按分鐘劃分到一起的顯示的呢?

 [[359156]]

前言

我們在QQ上聊天時,同一分鐘的聊天記錄會被放在一起展示,當我們發送消息時,每條消息的發送時間都會精確到秒,那么他是如何實現將這些數據按分鐘劃分到一起的顯示的呢?

今天在給我開源項目的聊天記錄添加消息發送時間展示時,正好遇到了這個問題,一開始想不明白應該如何處理這些數據,后來經過一番思考后,終于有了實現思路,將其實現了,本文就跟大家分享下我的實現思路以及過程,歡迎各位感興趣的開發者閱讀本文。

實現思路

先跟大家看下我的數據,如下所示:

  1. [{ 
  2.  "createTime""2020-12-21 20:58:19"
  3.  "avatarSrc""https://www.kaisir.cn/uploads/1ece3749801d4d45933ba8b31403c685touxiang.jpeg"
  4.  "msgId""121710f399b84322bdecc238199d6888"
  5.  "msgText""/壞笑/"
  6.  "userName""神奇的程序員"
  7.  "userId""c04618bab36146e3a9d3b411e7f9eb8f"
  8.  "status"false 
  9. }, { 
  10.  "createTime""2020-12-21 20:58:22"
  11.  "avatarSrc""https://www.kaisir.cn/uploads/1ece3749801d4d45933ba8b31403c685touxiang.jpeg"
  12.  "msgId""121710f399b84322bdecc238199d6888"
  13.  "msgText""還有人嗎"
  14.  "userName""神奇的程序員"
  15.  "userId""c04618bab36146e3a9d3b411e7f9eb8f"
  16.  "status"false 
  17. }, { 
  18.  "createTime""2020-12-21 20:58:46"
  19.  "avatarSrc""https://www.kaisir.cn/uploads/1ece3749801d4d45933ba8b31403c685touxiang.jpeg"
  20.  "msgId""121710f399b84322bdecc238199d6888"
  21.  "msgText""聊天記錄,添加了消息發送時間"
  22.  "userName""神奇的程序員"
  23.  "userId""c04618bab36146e3a9d3b411e7f9eb8f"
  24.  "status"false 
  25. }, { 
  26.  "createTime""2020-12-21 20:58:52"
  27.  "avatarSrc""https://www.kaisir.cn/uploads/1ece3749801d4d45933ba8b31403c685touxiang.jpeg"
  28.  "msgId""121710f399b84322bdecc238199d6888"
  29.  "msgText""現在看起來就方便多了"
  30.  "userName""神奇的程序員"
  31.  "userId""c04618bab36146e3a9d3b411e7f9eb8f"
  32.  "status"false 
  33. }, { 
  34.  "createTime""2020-12-21 21:35:27"
  35.  "avatarSrc""https://www.kaisir.cn/uploads/1ece3749801d4d45933ba8b31403c685touxiang.jpeg"
  36.  "msgId""121710f399b84322bdecc238199d6888"
  37.  "msgText""/壞笑/"
  38.  "userName""神奇的程序員"
  39.  "userId""c04618bab36146e3a9d3b411e7f9eb8f"
  40.  "status"false 
  41. }] 

觀察上方數據,我們發現:每個消息對象都有一個createTime屬性,它是消息的發送時間,精確到了時分秒,現在我們要做的就是把同一分鐘的時間只保留一個createTime屬性,渲染時間的時候只渲染擁有createTime屬性的對象,這樣就做到了將相同分鐘的數據渲染到了一起。

大體思路就是這樣,接下來我們看下具體的思路:

  1. 聲明一個對象命名為timeObj,存放消息對象里createTime字段的年-月-日 時:分,聲明一個新的消息記錄數組finalTextList存放處理好的數據
  2. 遍歷消息記錄數組,獲取當前遍歷到的消息記錄對象
  3. 獲取遍歷到的消息記錄對象的createTime屬性,截取 年-月-日 時:分,聲明一個變量time來保存
  4. 判斷time是否存在于timeObj中
  5. 如果存在就刪除遍歷到的消息記錄對象中的createTime屬性,將刪除屬性后的消息記錄對象放進finalTextList中
  6. 否則將time作為屬性放進timeObj中,將遍歷到的消息記錄對象原封不動的放進finalTextList中

處理好數據后,我們在渲染時判斷當前渲染項里是否存在createTime,如果存在就渲染。

實現過程

接下來,我們在拿到接口返回的數據后將其按照上述思路進行處理。

處理接口返回的數據

如下所示res.data.messageTextList為接口返回的消息記錄列表。

  1. // 消息內容列表 
  2. const messageTextList: Array<msgListType> = res.data.messageTextList; 
  3. // 處理好的消息內容數組 
  4. const finalTextList: Array<msgListType> = []; 
  5. // 時間存放對象 
  6. const timeObj: { [key: string]: boolean } = {}; 
  7. // 處理消息內容列表,同一分鐘的數據只保留一個創建時間 
  8. for (let i = 0; i < messageTextList.length; i++) { 
  9.     // 消息對象 
  10.     const messageObj = messageTextList[i]; 
  11.     // 獲取時間的 年-月-日 時:分 
  12.     const time = (messageObj.createTime as string).substring(0, 16); 
  13.     // timeObj中已經存在time,則移除當前消息對象的createTime 
  14.     if (_.has(timeObj, time)) { 
  15.         // 移除createTime屬性 
  16.         _.unset(messageObj, "createTime"); 
  17.         // 將移除createTime屬性的消息對象放進處理好的消息數組中 
  18.         finalTextList.push(messageObj); 
  19.     } else { 
  20.         // 將time作為key放進timeObj中 
  21.         timeObj[time] = true
  22.         // 原封不動的將消息對象放進處理好的消息數組中 
  23.         finalTextList.push(messageObj); 
  24.     } 
  25. // 渲染消息列表 
  26. this.renderPage(finalTextList, {}); 

上述代碼中的msgListType為消息記錄對象的類型定義,has為lodash的方法用于判斷對象中是否包含某個屬性,unset也為lodash的方法用于移除對象中的某個屬性。

處理推送數據

收到服務端推送的數據時,我們要將服務端推送的消息聚合到已經渲染的聊天記錄里,如果不是同一分鐘的消息則渲染新的時間,因此我們要取出當前推送消息的createTime字段,截取年-月-日 時:分判斷其是否在已渲染的消息記錄列表里,如果不存在則原封不動的渲染,否則就刪除createTime字段后渲染,代碼如下:

  1. // 接收到服務端推送的新消息,渲染單個消息對象 
  2. const thisSenderMessageObj: msgListType = { 
  3.     msgText: msgObj.msgText, 
  4.     avatarSrc: msgObj.avatarSrc, 
  5.     userId: msgObj.userId, 
  6.     userName: msgObj.userName, 
  7.     createTime: msgObj?.createTime 
  8. }; 
  9.  
  10. // 找到消息記錄列表中與新消息的同一分鐘的消息,移除新消息的createTime對象 
  11. for (let i = 0; i < this.senderMessageList.length; i++) { 
  12.     const messageObj: msgListType = this.senderMessageList[i]; 
  13.     // 截取當前消息與新消息發送時間的 年-月-日 時:分,判斷其是否相等 
  14.     if (_.isEqual(    messageObj.createTime?.substring(0,16),thisSenderMessageObj.createTime?.substring(0, 16))) { 
  15.         // 移除新消息的createTime屬性 
  16.         _.unset(thisSenderMessageObj, "createTime"); 
  17.    } 
  18.  
  19. // 解析并渲染 
  20. this.messageParsing(thisSenderMessageObj); 

msgObj為服務端推送的消息

渲染頁面

接下來我們看看頁面的渲染代碼,如下所示,只渲染對象中包含createTime屬性的數據

  1. <!--消息發送時間--> 
  2. <div class="snder-time-panel" v-if="item.createTime"
  3.   <span>{{ item.createTime.substring(5, 16) }}</span> 
  4. </div> 

實現效果

最后我們來看看實現的效果,如下所示:

我們再來發送一條消息看看效果,如下所示:圖片太大此處無法顯示,請在尾部閱讀原文進行查看。

項目地址

代碼地址:message-display.vue

在線體驗地址:chat-system

本文轉載自微信公眾號「 神奇的程序員k」,作者 神奇的程序員k 。轉載本文請聯系 神奇的程序員k公眾號。

 

責任編輯:武曉燕 來源: 神奇的程序員k
相關推薦

2022-05-06 14:19:02

邊緣計算物聯網5G

2021-03-15 10:26:29

邊緣計算云計算混合云

2016-03-31 13:22:51

UbuntuFreeBSD發行版

2020-09-16 11:20:40

PythonBashLinux

2014-08-12 09:54:35

Web語言編程語言

2020-05-27 11:18:44

安全風險數據

2021-09-07 09:43:02

云計算開源架構

2021-05-12 09:40:31

5G邊緣計算網絡

2023-10-27 16:17:49

云計算企業

2020-11-23 08:00:00

機器人工具RPA

2020-03-20 09:30:03

物聯網人工智能技術

2022-11-30 09:25:28

2020-12-14 06:48:42

Redis記錄轉存

2023-03-30 16:23:09

人工智能AI

2013-05-31 09:03:47

SkypeLync集成

2018-02-01 21:18:40

戴爾

2009-11-06 08:57:31

WCF開發

2013-08-06 09:49:01

2016-08-12 09:49:06

Intel

2023-11-30 15:23:07

聚合查詢數據分析
點贊
收藏

51CTO技術棧公眾號

亚洲av成人片色在线观看高潮| 国产成人中文字幕| 亚洲一二三不卡| 97超碰在线公开在线看免费| 成人中文字幕合集| 91精品国产色综合久久不卡98口| 中文字幕成人动漫| 日韩精品久久久久久久软件91| 亚洲国产成人av网| 无遮挡亚洲一区| 蜜桃在线一区二区| 麻豆久久久久久| 久久免费国产视频| 日本免费网站视频| 成人直播在线观看| 欧美另类一区二区三区| 欧美s码亚洲码精品m码| a视频在线观看免费| 久久婷婷久久一区二区三区| 91精品在线观看视频| 久久久久久久久久久久久av| 国产精品99视频| 亚洲精品视频久久| 欧美色图校园春色| 欧美三级电影网址| 日韩欧美第一页| www.国产在线视频| 久久久久久久久免费视频| 久久久www成人免费毛片麻豆| 国产91精品入口17c| 国产一区二区三区三州| 三级欧美在线一区| 97激碰免费视频| 欧美人妻精品一区二区免费看| 欧美xxav| 自拍偷拍亚洲欧美| 精品人妻av一区二区三区| 国产免费黄视频| av中文在线| 久久综合九色综合久久久精品综合 | 亚洲欧洲色图| 亚洲精品在线一区二区| www.午夜av| 国产精品久久毛片| 久久综合久久久| 殴美一级特黄aaaaaa| 国产一区二区三区四区五区入口| 国产精品女人久久久久久| 黄色片中文字幕| 媚黑女一区二区| 欧美中文在线观看| 日韩黄色在线播放| 久久xxxx精品视频| 国产精品jvid在线观看蜜臀| 在线观看日本视频| 久久国产主播| 国产精品久久久久久久久久99| 亚洲欧美日韩激情| 日本欧洲一区二区| 国产玖玖精品视频| 国产精品久久久久久69| 精品写真视频在线观看| 91麻豆国产语对白在线观看| 国产chinasex对白videos麻豆| 国产高清久久久| 国产精品一 二 三| 天堂网av2014| 国产日韩欧美在线一区| 中国一区二区三区| 日本高清成人vr专区| 一区二区三区.www| www.com毛片| 欧美日韩激情电影| 欧美一区二区三区视频| 毛茸茸free性熟hd| 国产最新精品| 欧美另类99xxxxx| 日韩av在线天堂| 久久在线精品| 成人有码视频在线播放| 韩国av免费在线| 久久人人97超碰com| 亚洲欧洲精品一区| 七七成人影院| 91精品办公室少妇高潮对白| 国产又粗又长又爽又黄的视频| 综合成人在线| 一区二区三区国产视频| 日韩女优一区二区| 媚黑女一区二区| 91免费观看| 久草视频在线看| 亚洲精品你懂的| 免费看国产曰批40分钟| 久久av日韩| 亚洲福利在线视频| 久久av红桃一区二区禁漫| 黑人一区二区| 国产精品久久久久久久久久东京 | 日本视频在线一区| 亚洲毛片在线免费观看| 正在播放国产对白害羞| 国产在线不卡| 国产精品免费久久久久久| www.黄色小说.com| 久久精品这里都是精品| 国产资源第一页| japanese23hdxxxx日韩| 日韩欧美卡一卡二| 免费黄色在线网址| 99综合视频| 91丝袜美腿美女视频网站| 无码国产伦一区二区三区视频| 国产精品久久久久久一区二区三区 | 一区二区三区四区激情| 一区二区在线播放视频| 牛牛精品成人免费视频| 久久国产精品久久久久久| av首页在线观看| 91亚洲永久精品| 国产av熟女一区二区三区 | av成人观看| 137大胆人体在线观看| 精品人伦一区二区三区蜜桃免费| 天天色天天干天天色| 欧美亚洲国产激情| 全亚洲最色的网站在线观看| 亚洲伦理在线观看| 最新热久久免费视频| 亚洲成人福利在线观看| 一区二区三区日本久久久 | 九一免费在线观看| 另类一区二区| 色噜噜国产精品视频一区二区 | 蜜桃av一区二区在线观看| 久久er99热精品一区二区三区| 激情av在线| 欧美r级电影在线观看| 疯狂试爱三2浴室激情视频| 美腿丝袜亚洲综合| 亚洲一区二区三区免费看| 日韩精品麻豆| 中文字幕日韩av综合精品| 欧美日韩一级黄色片| 久久蜜桃av一区二区天堂| 亚洲国产精品久久久久爰色欲| 欧美aaaaa级| 55夜色66夜色国产精品视频| 天堂在线视频免费观看| 天天操天天综合网| 国产三级视频网站| 麻豆久久精品| 日韩中文字幕一区| 国精品产品一区| 亚洲一区999| 中文字幕二区三区| 亚洲欧美一区二区视频| 日韩av卡一卡二| 国产精品成人国产乱| 成人国产激情| 亚洲欧洲一区二区三区在线观看| 国产精品久免费的黄网站| 亚洲国产欧美在线人成| 国产精品久久久久久久久久新婚 | 超碰在线观看97| 日本高清在线观看| 福利一区二区在线| 国产激情片在线观看| 亚洲电影一区| 97久久精品人搡人人玩| 香蕉视频免费在线看| 91黄色在线观看| 五月综合色婷婷| 成人性生交大片免费| 97超碰青青草| 99成人超碰| 国产精品一区二区在线观看| 中文字幕21页在线看| 国产一区二区三区视频免费| 国产精品爽爽久久久久久| 亚洲免费高清视频在线| 欧美日韩人妻精品一区在线| 丝袜美腿成人在线| 波多野结衣激情| 国产精品qvod| 国产精品成人一区二区三区吃奶| 91麻豆一二三四在线| 日韩精品免费综合视频在线播放| 最近中文字幕在线视频| 亚洲综合视频在线| 黄色片网站免费| 国产成人av电影| aaaaaa亚洲| 中出一区二区| 欧美精品一区二区三区久久| 国产精品亚洲四区在线观看| 97超碰蝌蚪网人人做人人爽| 男人天堂久久久| 日韩国产精品视频| 国产精品爽爽久久久久久| 色香蕉久久蜜桃| 欧美黄色一级网站| 国产欧美日韩在线观看| 国产情侣久久久久aⅴ免费| 日本亚洲免费观看| 欧美啪啪免费视频| 中文字幕一区二区三区在线视频| 免费一区二区三区在在线视频| 精品午夜视频| 国产精品亚洲аv天堂网| 女人高潮被爽到呻吟在线观看| 久久亚洲精品一区| 成年人视频在线看| 国产视频精品自拍| 囯产精品一品二区三区| 7777精品伊人久久久大香线蕉| 综合激情网五月| 亚洲一区二区在线播放相泽 | 亚洲最新视频在线观看| 国产不卡在线观看视频| 2019国产精品| 国产伦精品一区二区三区精品| 激情图片小说一区| 91制片厂毛片| 日韩不卡一区二区三区| 1024av视频| 亚洲激情欧美| 一卡二卡三卡视频| 午夜天堂精品久久久久| 在线无限看免费粉色视频| 欧美日韩伦理| 日韩欧美三级一区二区| 猛男gaygay欧美视频| 久久久av水蜜桃| 欧美成人午夜77777| 国产伦精品一区二区三区四区视频 | 亚洲成人精品| 亚洲最新免费视频| 午夜激情久久| 91xxx视频| 91精品国产91久久久久久密臀| 一本一本久久a久久精品综合妖精| 欧美丝袜一区| 偷拍盗摄高潮叫床对白清晰| 国产韩日影视精品| 中文字幕在线中文| 欧美午夜影院| 免费观看美女裸体网站| 亚洲影院在线| 别急慢慢来1978如如2| 日韩avvvv在线播放| 色播五月综合网| 久久www免费人成看片高清| 国产一级免费大片| 国产成人高清视频| 内射中出日韩无国产剧情| 久久亚洲私人国产精品va媚药| 国产日韩欧美三级| 蜜桃av色综合| 国产乱码精品一区二区三区四区| 欧美一区二区三区电影在线观看 | 91看片淫黄大片91| 亚洲天堂男人| 2022亚洲天堂| 美腿丝袜亚洲色图| 麻豆免费在线观看视频| 97超碰欧美中文字幕| 高清国产在线观看| **性色生活片久久毛片| 国产乡下妇女做爰视频| 色先锋久久av资源部| 国产又粗又黄又爽的视频| 欧美α欧美αv大片| 免费在线性爱视频| 久久精品国产91精品亚洲| 欧美aaaaaaa| 国产不卡在线观看| 国产成年精品| 免费亚洲一区二区| 91精品啪在线观看国产18| 黄色一级片在线看| 麻豆成人久久精品二区三区红| 日本少妇一区二区三区| 久久影院视频免费| 成人免费精品动漫网站| 欧美视频二区36p| 国产精品嫩草影院桃色| 亚洲精品国产精品自产a区红杏吧 亚洲精品国产精品乱码不99按摩 亚洲精品国产精品久久清纯直播 亚洲精品国产精品国自产在线 | 日韩在线观看免费高清| 黑人玩欧美人三根一起进| 国产精品视频不卡| 好吊妞国产欧美日韩免费观看网站 | 欧洲视频在线免费观看| 欧美成年人网站| 女生影院久久| 国产精品久久精品视| 日韩精品不卡一区二区| 欧美日韩性生活片| 国产一区在线视频| 国产综合精品久久久久成人av| 亚洲综合在线第一页| 中文字幕一区二区三区人妻四季 | 亚洲福利精品| 午夜剧场在线免费观看| 久久久夜色精品亚洲| 九九热国产精品视频| 欧美久久久久免费| 精品无人乱码| 91av在线播放| av动漫精品一区二区| 日韩黄色影视| 亚久久调教视频| 国产chinese中国hdxxxx| 亚洲同性同志一二三专区| 欧美性猛交xxxx乱大交hd| 亚洲国产精品一区二区久| 91国内在线| 亚洲va欧美va国产综合久久| 日韩欧美1区| 国内自拍视频一区| 91麻豆国产精品久久| 久久免费视频99| 日韩一级片网址| 国产区在线观看| 成人黄色免费片| 欧美激情电影| 亚洲36d大奶网| 国产欧美一区二区三区沐欲| 成人免费看片98欧美| 亚洲护士老师的毛茸茸最新章节 | 亚洲欧美亚洲| 国产三级生活片| 亚洲欧洲精品一区二区精品久久久| 成人黄色三级视频| 一区二区三区视频免费在线观看| 国产高清视频色在线www| 精品国产一区二区三区麻豆小说| 国产精品hd| av av在线| 五月激情综合色| 日韩三级电影网| 国产成一区二区| 成人精品久久| www.久久av.com| 亚洲天堂久久久久久久| 国产日韩一级片| 欧美国产第一页| 国产欧美自拍一区| 国产一区二区三区精彩视频 | 狠狠色狠狠色综合系列| 精品国产国产综合精品| 日韩欧美不卡在线观看视频| 欧美xxxx视频| 精品国产aⅴ麻豆| 老司机一区二区三区| 天天舔天天操天天干| 欧美精品久久99久久在免费线| 成人免费高清| 国模一区二区三区私拍视频| 久久性色av| 国产又黄又粗又猛又爽的 | 特级黄色录像片| 久久久久久久高潮| 色www亚洲国产阿娇yao| 欧美一区二区视频在线观看2020| 在线观看av免费| 精品国产一区二区三区四区vr| 久久久久国产精品一区三寸| 日本一级片免费| 精品久久久久久久久久久久久久久久久 | 一卡二卡在线观看| 欧美精品久久久久久久免费观看| 亚洲免费毛片| 一本一道久久a久久综合蜜桃| 亚洲一区二区综合| 极品美乳网红视频免费在线观看| 国产日韩欧美影视| 亚洲精品三级| 欧美一区二区三区粗大| 日韩欧美一级二级三级久久久 | 91日本视频在线| 一本色道精品久久一区二区三区| 亚洲一二三精品| 精品福利av导航| 成人国产精品| 成人精品视频在线播放| 欧美国产日韩亚洲一区| 国产成人精品av在线观| 国产91网红主播在线观看| 亚洲国产精品综合久久久 | 91高清国产视频| 午夜av电影一区| 久久久久久久久免费视频| 欧美久久综合性欧美| 国产成人精品午夜视频免费| 亚洲av无码乱码国产精品fc2| 久久免费福利视频| 99精品网站| 少妇av片在线观看| 精品国产网站在线观看|