weixin_40313261 2019-04-19 10:46 采纳率: 0%
浏览 781
已结题

javascript 前端indexDB,根据游标遍历所有数据排序无效问题?

目前手上有个后台聊天系统,需要制作。

我需要在indexDB中 拿出非重复 数据,作为聊天人的列表。

图片说明

类似这样。
但是我再csdn的博客中查找到关于数据排序的文章。
图片说明

function dbGetFriendList(){
        var request = window.indexedDB.open('hxim');
        request.onsuccess = function (event) {
            db = request.result;
            var transaction = db.transaction('msg','readwrite');
            var store = transaction.objectStore('msg');
            // var index = store.index('success');
            var requestaa = store.openCursor(IDBCursor.NEXT_NO_DUPLICATE);
            requestaa.onsuccess = (e) => {
                var cursor = e.target.result;
                if(cursor){
                    var person = cursor.value;
                    console.log(person);
                    cursor.continue();
                }
            };
        };
    }

但是输出的数据 并未实现 非重复数据。

图片说明

后来考虑会不会废弃于是找到indexDB 官方文档。

图片说明

但是发现这个方式也没有成功与上方一样。

  • 写回答

1条回答 默认 最新

  • 前端路上的雷哥 2019-04-22 11:39
    关注

    这个第一遍取到数据后,进行循环过滤一遍就可以了
    如果重复条件是 时间+内容
    var oldList='原始数据';
    var newList=[];
    var repeatList=[];
    for(var a=0;a<oldList.length;a++){
    var data=oldList[a];
    if(repeatList.indexOf(a.time+a.sourceMsg)==-1){
    repeatList.push(data.time+data.sourceMsg)
    newList.push(data)
    }
    }
    return newList

    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试