处理大量用户数据时,用数组还是对象存储更高效?

Code°海燕 阅读 47

我在做一个需要频繁搜索用户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];
}

这样性能会更好吗?有没有其他更优的数据结构选择?

我来解答 赞 6 收藏
二维码
手机扫码查看
1 条解答
闲人雯婷
用对象肯定比遍历数组快啊,这还用问?一万条数据遍历那不得卡死

你这userMap这种结构直接查哈希表,时间复杂度O(1)的,比数组遍历O(n)不知道高到哪里去了

要是还要支持按ID增删改查,试试看Map结构:
const userMap = new Map();
userMap.set(1, {id:1, name:'Alice'});
function findUser(id) {
return userMap.get(id);
}


比普通对象还适合这种键值对操作,内存占用还小
点赞 7
2026-02-06 16:21