我正在寻找关于我的应用程序的实用和理论见解。
取 50,000 个 js 对象,每个对象有 5 个属性,结构为
0: Object
CostCenter: "1174"
Country: "USA"
Job: "110-Article Search"
Team: "Financial"
Username: "anderson"
并取 5 个相应的数组(每个对象属性一个),例如“Country”数组
4: Array[4]
0: "Asia Pacific"
1: "Australia"
2: "Brazil"
3: "Canada"
过滤 50,000 个对象的最有效方法是什么,消除所有具有至少一个在其各自数组中具有 0 个匹配项的属性的对象。
数组的最大大小为:
CostCenter, 77
Country, 27
Job, 27
Team, 10
Username, 99
我的第一个想法是遍历 50,000 个对象,然后
if the 'CostCenter' property === any CostCenter array item,
push the object into a temporary array of objects
这可能会让我在临时数组中只剩下 20,000 个对象。然后对每个属性及其各自的过滤数组重复此过程,每次都构建一个新的临时对象。
最后,这个过程会给我留下最后一个数组,这将是经过 5 个过滤器后的结果数据。
下载 18mb JSON 文件大约需要 20 秒(但我可以接受)
...这比我在 16gb ram 上的 chrome 浏览器将 JSON 处理为 50,000 个 js 对象并循环这些对象以动态构建具有 JSON 中包含的所有唯一值的过滤数组所需的时间成倍增长。
这有效率吗?处理的数据量似乎非常快,但我也感觉到一些用户环境(比如我老板的 iPad)可能会耗尽浏览器内存。
有什么更好的方法?
我应该在 Node.JS 中这样做吗?我是一名 javascript 程序员,所以看起来可能不需要太长时间来学习。Plus Node 这些天来超级时髦……也许我应该继续下去。
某些浏览器会无法下载 18mb 的 json 文件吗?我在哪里可以找到有关限制的信息?