javascript - 了解 JavaScript 对象的时间空间复杂度
问题描述
所以场景是我有一个包含很多键值对的对象并且也是嵌套的。我需要经常访问这些键值对,但不是同时访问。例如:如果我有一个包含 10 个键值对的对象,我可能只会更频繁地使用其中的 4 个。
我想到了两种处理这种情况的方法:
- 我将遍历整个对象一次并获取每个键值对并将它们中的每一个分别存储在 reduxe 存储中。
- 我不会单独存储每个密钥对,而是将对象保持原样,并且仅使用Object.prototype.hasOwnProperty.call(customObject, 'key')从对象中获取所需的键值对。
时空复杂度分析:
- 在第一种方法中,我将在 redux 存储中使用额外的空间,因为我将单独存储完整的对象本身和每个键值对。这给了我O(N)的时间复杂度,因为我将遍历整个对象并且我还将使用额外的空间。
- 在第二种方法中,我只会将主要对象存储在商店中,并根据需要获取键值对。这给了我O(1)的时间复杂度,因为hasOwnProperty()是一种关键查找方法,我没有使用额外的存储空间。
我的问题是我应该更喜欢哪种方法?在我看来,第二种方法更好。
解决方案
推荐阅读
- git - 当我尝试使用 TortoiseGit 恢复文件时,为什么我 a) 出现取消链接失败 b) 完全丢失文件?
- python - 创建一个新列,该列被转换为 pandas 中的字符串
- html - 中心绝对定位的 div 与 translateX 和溢出:自动没有边距
- javascript - 条纹结帐按钮在移动设备上没有任何作用
- netsuite - 从父自定义记录类型访问子自定义记录类型
- ocaml - not sure what is wrong in this implementation
- azure - Azure-Powershell 脚本错误(IP 地址增量)
- r - Using `pool` in an R Shiny package
- android - How to customize android style in FirebaseUI
- c++ - How would I make a UTF-8 letter code when i have its binary equivalent? C++