首页 > 解决方案 > 了解 JavaScript 对象的时间空间复杂度

问题描述

所以场景是我有一个包含很多键值对的对象并且也是嵌套的。我需要经常访问这些键值对,但不是同时访问。例如:如果我有一个包含 10 个键值对的对象,我可能只会更频繁地使用其中的 4 个。

我想到了两种处理这种情况的方法:

  1. 我将遍历整个对象一次并获取每个键值对并将它们中的每一个分别存储在 reduxe 存储中。
  2. 我不会单独存储每个密钥对,而是将对象保持原样,并且仅使用Object.prototype.hasOwnProperty.call(customObject, 'key')从对象中获取所需的键值对。

时空复杂度分析:

  1. 在第一种方法中,我将在 redux 存储中使用额外的空间,因为我将单独存储完整的对象本身和每个键值对。这给了我O(N)的时间复杂度,因为我将遍历整个对象并且我还将使用额外的空间
  2. 在第二种方法中,我只会将主要对象存储在商店中,并根据需要获取键值对。这给了我O(1)的时间复杂度,因为hasOwnProperty()是一种关键查找方法,我没有使用额外的存储空间

我的问题是我应该更喜欢哪种方法?在我看来,第二种方法更好。

标签: javascriptreactjsobjectreduxtime-complexity

解决方案


推荐阅读