使用String或Date作为记忆的对象键。

时间:2013-04-07 11:15:07

标签: javascript performance

我有一个日期数组,我需要不止一次对这些日期执行一些计算。所以我决定使用memoization来缓存结果。

但是,我不确定是否可以将Date对象用作关键字。我希望比较日期可能比比较字符串慢,所以使用日期的字符串表示作为键可能是有意义的。

所以我的问题是,最好用作密钥,字符串或日期来访问JavaScript对象中的值。

1 个答案:

答案 0 :(得分:8)

我认为您可以使用getTime方法来比较Date对象的数字版本。应该更快,加上更可靠的IMVHO跨浏览器和SO的字符串表示,以及它们的语言环境,也可以更容易被操作。

如果你没有使用MapWeakMap而只使用普通对象,请注意将Date对象作为对象的键传递将自动获得它的字符串版本({{1将被调用):

toString