【发布时间】:2017-11-14 14:02:57
【问题描述】:
在我的项目中,我需要处理存储在数组中的大量数据。我从来没有做过这样的事情。我知道我可以使用框架,但我想学习如何自己处理它。
情况
我有(20 个或更多)数组(每个 1000 行或更多行),就像这样(每行有很多更多的项目)。
var travels = [
["Johnson Mayer", "21. 3. 2017", "10 km", "100 USD"],
["Johnson Mayer", "21. 2. 2017", "20 km", "100 USD"]
]
var flights = [
["Delta", "Mayer.Johnson", "3. 2017", "10 miles", "200 USD"],
["UA", "McRurgh.Steve", "5. 2017", "20 miles", "100 USD"]
]
- 数组有不同的单位和数据格式(公里和英里,名称是 一次 Name Surname 但在第二个数组 Surname.Name 中)。
- 相似的数据在不同的位置(旅行的名字在第一个位置, 第二个航班)。
- 某些数组包含其他数组中没有的项 (例如航空公司名称)
- 并非每个数组都包含相同的内容(在 没有史蒂夫旅行,梅耶被储存了两次)。
目标
目标是查看用户的活动。
1) 我需要从我的数组中加载所有名称,合并名称,因为不同的数据结构并将每个名称存储为唯一的“变量”。 变量用引号引起来,因为我不知道我是否应该创建简单的变量、对象、数组或其他东西。
2) 比较它的日期是否在 qunique 行中 - 如果是,则创建新行,如果没有填充现有行并合并相同的数据。如果我应该从上面的数据中列出,它会是这样的。 (Johnson Mayer 与 Mayer.Johnson 合并,March 合并,10km 和 10miles 转为 kms 并汇总)。
<table>
<thead>
<th>Name</th>
<th>Date</th>
<th>Distance sum</th>
<th>Sales</th>
<th>Airlines</th>
</thead>
<tbody>
<tr>
<td>Johnson Mayer</td>
<td>2. 2017</td>
<td>20 km</td>
<td>100$</td>
<td>None</td>
</tr>
<tr>
<td>Johnson Mayer</td>
<td>3. 2017</td>
<td>26 km</td>
<td>300$</td>
<td>Delta</td>
</tr>
<tr>
<td>Steve McRurhg</td>
<td>5. 2015</td>
<td>32 km</td>
<td>100$</td>
<td>UA</td>
</tr>
</tbody>
</table>
问题
1) 我应该如何处理这么多数据?我尝试使用 javascript 将其渲染为表格。甚至没有渲染,我的浏览器显示后变得很慢。
2) 存储从数组中获取的数据的最佳方式是什么?一个巨大的数组,多个数组,对象?
3) 能否请您提供解决方案的示例代码?
【问题讨论】:
-
这是一个相当复杂、多方面的问题。例如,将
Johnson Mayer合并到Mayer.Johnson本身就需要一个正则表达式——事实上它们位于具有不同长度的不同数组中。您似乎也没有尝试自己解决很多复杂的问题。您能否更新您的问题以显示您已经尝试过的内容,并在 minimal, complete, and verifiable example 中展示您面临的具体问题。 -
向我们展示你尝试过的展示
-
数据量大,获取数据时必须有分页选项。例如,如果每个请求可以获得 20 条记录,则可以解决部分问题(浏览器不必大量处理数据,您可以将数据存储到 1 个变量中,下一页操作将用新数据替换该变量) .如果数据来自第三方资源,您可以尝试查找它们是否支持分页。
标签: javascript jquery arrays javascript-objects