2013-01-12 21 views
0

从对象或简单计算中检索信息的速度更快? 他们之间有明显的区别吗?js中的信息检索更快吗?对象与计算

语境:

  • Web开发
  • 使用js和/或jQuery的
  • 多达几百个项目,影响了网页

下面就为对象的示例中,我会检索信息:

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; 

有明显的未来打样的优势,利用数学,但速度是一个重要的考虑因素在这里。

+2

然后,该模式已经一去不复返了...... – Alexander

+0

怎样的格局消失了? –

+0

除非你指的是具有固有开始和结束的对象。这就是数学更适合未来打样的地方。 –

回答

1

数学应该更快,如果你知道算法,你甚至不需要对象文字。在你需要它之​​前立即解释对象字面值,而数学只占用你需要的处理器/时间。

对于对象文字,执行查找所花的时间可能超过数学计算,因为它依赖于数学计算+与遍历对象相关的额外开销。

跟数学一起去吧。

+1

只要你的数学和上面一样简单,是的 - 去数学。如果你开始寻找循环和条件,那么预先计算可以帮助你。如果有疑问,请以此为基准。 – tucuxi

+0

+1有用的解释。 –