【问题标题】:Searching a JSON Object regarding Speed/Efficiency搜索有关速度/效率的 JSON 对象
【发布时间】:2013-10-22 06:21:24
【问题描述】:

我对如何搜索对象/数组有疑问。举个例子:

while ($obj = $sql->fetch_object()) {
    array_push($jsonObj,array('serial' => $obj->serialNum,'model' => $obj->model,'os' => $obj->os,'man' => $obj->manufacturer,'team' => $obj->team,'enabled'=>'true'));

if($.inArray((JsonObj[i].os)) >= 0){...}

我基本上有一个多维数组,有 6 个“列”保存计算机信息。

如果对象还包含有关计算机(内存、硬盘等)的更多详细信息并且具有更多“列”,则此“如果”是否会花费更长的时间来搜索对象/数组?或者点符号会阻止这种情况吗?

【问题讨论】:

  • 在有大量属性之前,属性访问是有效的,而不是真正有多少的函数。
  • 不确定你在做什么,$.inArray 需要 2 个参数。如果您可以发布 JSON 本身,而不是生成它的 PHP 代码,也会更容易。

标签: javascript arrays json search object


【解决方案1】:

在原型链中越往下走,属性查找就越慢。在您的情况下,您不是遍历对象,而是遍历数组索引。因此,一旦缓存了对象引用,检索属性应该不会很慢。

当你已经在链中很长的路要走时,避免循环遍历对象属性:

for( property in object.property1.property2.property3[i] ) 因为这确实会更慢。

【讨论】:

  • 属性查找与作用域链有什么关系?
  • 要明确一点,数组中属性的数量不会影响花费的时间?
猜你喜欢
  • 2017-05-13
  • 2017-07-04
  • 2018-10-21
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
相关资源
最近更新 更多