2017-06-13 17 views
0

私のプロジェクトでは、配列に格納された大量のデータを扱う必要があります。私はこのようなことは一度もしていない。私はそれにフレームワークを使用できることを知っていますが、私はそれを自分で処理する方法を学びたいと思います。JavaScript/jQuery - 異なるデータ構造を持つ複数の配列を扱う

状況

は私はこのような(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"] 
] 
  • 配列は、(名前が名前姓一度しかし二番目の配列Surname.Nameに あり、キロ、マイル)diferentユニットおよびデータ・フォーマットを有します。
  • 類似したデータは異なる位置にあります(旅行は最初の位置に名前があり、2番目に 便)。
  • 一部のアレイには、(例えば航空会社名)
  • 各アレイは( 旅行でスティーブとメイヤーが二回保存されていないtheresの)同じものが含まれていない他のない のアイテムを持っています。

ゴール

目標は、ユーザーのアクティビティを確認することです。

1)配列からすべての名前を読み込み、異なるデータ構造で名前をマージし、各名前を一意の「変数」として保存する必要があります。 変数は単純な変数、オブジェクト、配列などを作成する必要があるかどうかわからないので、変数は引用符で囲みます。

2)quniqueの日付が一致する場合は、新しい行を作成します。既存の行を入力しないで、同じデータをマージします。上記のデータからテーブルを作成すると、このようになります。 (Johnson MayerはMayer.Johnsonと合併し、3月は合併され、10kmと10milesはkmsに移管され、sumarizedされた)。

<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)私はあなたにソリューションのサンプルコードを提供できますか?

+0

これは非常に複雑で多面的な質問です。例えば、 'Johnson Mayer'と' Mayer.Johnson'をマージするには、正規表現が必要です。異なる長さの配列になっているという事実があります。また、複雑な問題の多くを自分で解決しようとしたようには見えません。質問を更新して、あなたが既に直面している問題を[**最小で、完全で、検証可能な例**](http://stackoverflow.com/help/mcve)で紹介してください。 –

+0

あなたが試したことを示すshow – epascarello

+0

大量のデータでは、データを取得するときに改ページオプションが必要です。たとえば、要求ごとに20件のレコードを取得できる場合は、問題の一部を解決できます(ブラウザはデータを大量に処理する必要がなく、1つの変数にデータを格納できます。次のページアクションはその変数を新しいデータに置き換えます) 。データが第三者のリソースから得られたものである場合、ページングがサポートされているかどうかを調べることができます。 –

答えて

0

データソースについて詳しく教えてください。

フライデータ解析のように聞こえます。私は定期的に(15分ごとに)データを処理し、データベースに格納するcronジョブを実行することを検討します。

また、データをAJAXと非同期にロードすることもできます。これにより、正確なプリローダーを作成したり、読み込んだデータを徐々に表示したりすることができます。

この回答は、さまざまな配列がライブデータのさまざまなフィードから取得されていることを前提としています。そうでない場合は、私はそれを修正するかもしれません。

関連する問題