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 官方文档。

图片说明

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

这个第一遍取到数据后,进行循环过滤一遍就可以了
如果重复条件是 时间+内容
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