处理大量用户数据时,用数组还是对象存储更高效?
我在做一个需要频繁搜索用户ID的组件,当前用数组存储用户对象,通过遍历查找ID:
const users = [{id:1, name:'Alice'}, ...];
function findUser(id) {
for(let user of users) {
if(user.id === id) return user;
}
}
当数据超过1万条时明显卡顿,试过把数据转成对象形式:
const userMap = {1: {id:1, name:'Alice'}, ...};
function findUser(id) {
return userMap[id];
}
这样性能会更好吗?有没有其他更优的数据结构选择?
你这userMap这种结构直接查哈希表,时间复杂度O(1)的,比数组遍历O(n)不知道高到哪里去了
要是还要支持按ID增删改查,试试看Map结构:
比普通对象还适合这种键值对操作,内存占用还小