我应该使用带有id的对象还是带有索引的数组来选择值



假设我有一个用户数据库。

user1: {'name': 'John'}
user2: {'name': 'Sue'}
...

我可以创建一个用户阵列

const [array, setArray] = useState([user1, user2,...])

我可以选择一个索引为array[index]的用户

const [index, setIndex] = useState(0);
const selectedUser = array[index];
return <h2>{selectedUser.name}</h2>

或者我可以创建一个以id为关键点的对象。

const [obj, setObj] = useState({'user1': {'name': 'John'},...})

我可以通过保存用户idobj['user1']来选择用户。

const [id, setId] = useState('user1');
const selectedUser= obj[id];
return <h2>{selectedUser.name}</h2>

哪一个更适合选择用户,然后使用数据进行渲染?在性能或内存使用方面有什么主要区别吗?

就我个人而言,我建议使用对象。

你可以在它们上做任何事情,就像在数组上做一样。例如,在考虑对象的情况下,在具有特定name的阵列中找到元素具有性能优势。在一个对象中找到它(如果键是name(,找到它是O(1(,而在一个数组中,你必须迭代所有元素(所以O(n((。

在您的情况下,如果您知道索引,那么使用哪一个并不重要。

最新更新