我有一个日期数组,我需要对这些日期进行多次计算。所以我决定使用 memoization 来缓存结果。
但是,我不确定是否可以使用 Date
对象作为键。我预计比较日期可能比比较字符串慢,因此使用日期的字符串表示作为键可能是有意义的。
所以我的问题是,在访问 JavaScript 对象中的值时,哪个更好用作键、字符串或日期。
最佳答案
我想你可以使用 getTime方法来比较 Date 对象的数字版本。应该更快,而且跨浏览器和 SO 的字符串表示形式的 IMVHO 及其语言环境更可靠,并且也更易于操作。
如果您没有使用 Map或 WeakMap但只是普通对象,请注意将 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/