如何将字符串的长度应用于从某些数据集创建的某些组件集合中,如下所示:
{this.state.list.map(item => {
const url = item.url;
return (
<ListItemComponent url={url} key={url}/>
);
})}
有一些限制吗?拥有长密钥值会对性能产生什么影响?
背景。有时候我们需要创建很长的项目列表(比如编码了大量参数的网址),只有合适的/唯一的东西才能用作自然键这是非常长的事情。
答案 0 :(得分:5)
用于密钥的字符串长度不应影响性能。
Javascript中的字符串是不可变的,另外现代Javascript引擎使用字符串实习,这意味着当您的解释器检查是否'/some/url/ === '/some/other/url'
它不需要遍历O中的数组中的每个字符时(n)线性时间,但可以简单地检查两个值是否相同。
有关更多背景信息,请参阅此答案:Do common JavaScript implementations use string interning?