【问题标题】:JQuery compare large datasetsJQuery 比较大型数据集
【发布时间】:2017-02-24 06:12:28
【问题描述】:

我调用了返回包含有效值的对象的数据库

对象 1. 错误详情:对象

  1. ExistingInspections:Array[36640]
  2. ValidAttNamesandLengths:Array[3]
  3. ValidDownValues:数组[11]
  4. ValidRatingTypes:Array[52]
  5. ValidStaffAndDepts:Array[431]

我还有一个从 csv 生成的数据表。 我需要根据该验证对象中返回的值验证 csv 中的值,但我不确定最有效的方法是什么?我可以使用两个 for 循环并在验证模型中针对每个单元格循环遍历每个对象,但我最多可以有 1500 行和 15 列,并且使用 for 循环几乎是我能想到的最慢的方式

【问题讨论】:

  • 不是一个答案,而是一些循环优化技巧——缓存长度(而不是在每次通过时计算),并避免whileforEach,因为它们往往相当多慢点。至少那是我对 JSPerf 的记忆……

标签: javascript jquery arrays csv memory-management


【解决方案1】:

您可以使用对象和关联数组。

使用Objects你可以看到值为obj['field'],所以它应该已经很高效了。

使用数组,您可以将它们转换为关联数组一次,然后在每次读取 csv 中的值时以恒定时间访问它们(可能使用一些转换函数)。

肯定比为 csv 中的每个值循环遍历这些结构要快得多。

制作示例非常困难,因为我不知道您的数组和/或 obj 是如何制作的,也不知道它们的内容..

【讨论】:

  • 抱歉,这里是 csv 转换(1 行)的示例和验证模型之一 Example CSV Array[1] 1. 0:Object 1. Asset Info Notes:null 2. AssetGroup: “公园” 19. 需要工单吗? (Y/N):"N" 验证模型 1. Object 3. ValidAttNamesandLengths:Array[3] 1. 0:Object 1. AttributeLength:250 2. AttributeName:"DetailsOfAssetInfoChanges" 3. proto:对象 2. 1: 对象 3. 2: 对象 4. 长度:3 5. proto:Array[0] 4. ValidDownValues:Array[11] 5. ValidRatingTypes:Array[52] 6. ValidStaffAndDepts :数组[431]
猜你喜欢
  • 1970-01-01
  • 2018-10-10
  • 2020-02-22
  • 2020-09-30
  • 2013-10-16
  • 1970-01-01
  • 2020-09-28
  • 2013-09-18
  • 1970-01-01
相关资源
最近更新 更多