私のプロジェクトでは、配列に格納された大量のデータを扱う必要があります。私はこのようなことは一度もしていない。私はそれにフレームワークを使用できることを知っていますが、私はそれを自分で処理する方法を学びたいと思います。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)私はあなたにソリューションのサンプルコードを提供できますか?
これは非常に複雑で多面的な質問です。例えば、 'Johnson Mayer'と' Mayer.Johnson'をマージするには、正規表現が必要です。異なる長さの配列になっているという事実があります。また、複雑な問題の多くを自分で解決しようとしたようには見えません。質問を更新して、あなたが既に直面している問題を[**最小で、完全で、検証可能な例**](http://stackoverflow.com/help/mcve)で紹介してください。 –
あなたが試したことを示すshow – epascarello
大量のデータでは、データを取得するときに改ページオプションが必要です。たとえば、要求ごとに20件のレコードを取得できる場合は、問題の一部を解決できます(ブラウザはデータを大量に処理する必要がなく、1つの変数にデータを格納できます。次のページアクションはその変数を新しいデータに置き換えます) 。データが第三者のリソースから得られたものである場合、ページングがサポートされているかどうかを調べることができます。 –