【问题标题】:JavaScript/jQuery - working with multiple arrays with different data structureJavaScript/jQuery - 使用具有不同数据结构的多个数组
【发布时间】: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


【解决方案1】:

您能告诉我们更多关于数据源的信息吗?

这听起来像是很多动态数据解析。我会考虑定期(每 15 分钟)运行一个 cron 作业,处理数据并将其存储在数据库中。

或者,可以使用 AJAX 异步加载数据,这样可以生成准确的预加载器或在加载时逐渐显示数据。

这个答案假设不同的数组来自不同的实时数据源。如果不是这种情况,我可能会修改它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2010-09-29
    • 2011-06-26
    相关资源
    最近更新 更多