javascript - 使用 String 或 Date 作为对象键进行内存。

标签 javascript performance

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

但是,我不确定是否可以使用 Date 对象作为键。我预计比较日期可能比比较字符串慢,因此使用日期的字符串表示作为键可能是有意义的。

所以我的问题是,在访问 JavaScript 对象中的值时,哪个更好用作键、字符串或日期。

最佳答案

我想你可以使用 getTime方法来比较 Date 对象的数字版本。应该更快,而且跨浏览器和 SO 的字符串表示形式的 IMVHO 及其语言环境更可靠,并且也更易于操作。

如果您没有使用 MapWeakMap但只是普通对象,请注意将 Date 对象作为对象的键传递将自动获取它的字符串版本(将调用 toString):

var now = {}; 
now[new Date()] = true;


console.log(Object.keys(now)); // ["Sun Apr 07 2013 13:21:17 GMT+0200 (CEST)"]

关于javascript - 使用 String 或 Date 作为对象键进行内存。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861751/

相关文章:

javascript - 使用 jQuery/JavaScript 做出答案后删除文本

javascript - 如何使用 jquery 和 javascript 更改 div 的内容?

javascript - ActionScript 3 数组

c - 用于数百万个UINT64 RGBZ图形像素的最快HASH算法

javascript - 删除对象时执行元素指令动画的 Angular 方式?

javascript - 在 onChange 事件中获取 redux-form 值

javascript - JS 脚本非常慢 : what am I doing wrong or how can I speed up?

visual-studio - Windows gcc 编译和 Visual Studio 编译之间的性能比较

python - MongoDB Update-Upsert Performance Barrier(性能跌落悬崖)

mysql - 按 SQL 查询排序