从对象或简单计算中检索信息哪个更快? 他们之间有明显的区别吗?
上下文:
以下是我将从以下位置检索信息的对象示例:
var pModel = {
1 : {sire: 3, dam: 4, herdList: settings.sireList},
2 : {sire: 5, dam: 6, herdList: settings.damList},
3 : {sire: 7, dam: 8, herdList: settings.sireList},
4 : {sire: 9, dam: 10, herdList: settings.damList},
5 : {sire: 11, dam: 12, herdList: settings.sireList},
6 : {sire: 13, dam: 14, herdList: settings.damList}
};
在我编写代码之后,我注意到了数据中固有的数学模式:
// Where x is a number
pModel[x].sire == 2x+1;
pModel[x].dam == 2x+2;
(x%2=0) ? settings.damList : settings.sireList;
使用数学有明显的未来证明优势,但速度是这里的主要考虑因素。
答案 0 :(得分:3)
答案 1 :(得分:1)
数学应该更快,如果你知道算法,你甚至不需要对象文字。在您需要之前立即解释对象文字,而数学只占用您需要的处理器/时间。
使用对象文字,进行查找所花费的时间可能比数学计算更多,因为它依赖于数学计算+与遍历对象相关的额外开销。
继续数学。