目前手上有个后台聊天系统,需要制作。
我需要在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