假设我有一个用户数据库。
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((。
在您的情况下,如果您知道索引,那么使用哪一个并不重要。