1

JSON を使用してデータ ファイルを作成しました。データは、地下鉄駅に関する変数の選択です。ファイルのセクションについては、以下を参照してください。このセットアップは、ステーション ID がある場合にステーションを見つけるのに非常に適しています。例: Web ページでステーションをクリックすると、要素 ID がステーション コードになり、ポップアップ ボックスにステーション名とゾーンを入力できます。

しかし、たとえば完全なテキスト名が与えられた場合、どのように駅の場所を見つけるのが最善でしょうか? a) すべてのステーション オブジェクトを繰り返し処理し、if コマンドを使用してオブジェクト内の名前を与えられた名前と照合するコードが必要です。b) 2 番目の JavaScript オブジェクトで一連のキーと値のペアを作成し、最初にステーション ID を検索するために使用し、次に最初のオブジェクトで残りのステーション データを検索します。

また、特定の路線のすべての駅のデータを見つけるにはどうすればよいでしょうか。a) 繰り返し、チューブライン配列にライン ストリングが含まれていることを確認します。b) ライン ヘッダーの下にすべてのステーション コードを含むさらに別のオブジェクト。

{
    "BST": {
        "name": "Baker Street",
        "Location": [
            51.523129639184,
            -0.15688978273689
        ],
        "zone": 1,
        "tubelines": [
            "Bakerloo",
            "Circle",
            "Hammersmith & City",
            "District"
        ],
        "Bakerloo": {
            "stepfreetrain": false
        },
        "Circle": {
            "stepfreetrain": false
        },
        "Hammersmith & City": {
            "stepfreetrain": false
        },
        "District": {
            "stepfreetrain": false
        }
    },
    "CHX": {
        "name": "Charing Cross",
        "Location": [
            51.508358644804,
            -0.12478853109718
        ],
        "zone": 1,
        "tubelines": [
            "Bakerloo",
            "Northern"
        ],
        "Bakerloo": {
            "stepfreetrain": true
        },
        "Northern": {
            "stepfreetrain": true
        }
    }
}

したがって、重要な質問は、これが上記のデータをレイアウトするための最良の方法であるか、またそうである場合、情報を引き出すための最も速い方法はどれかということです。

4

4 に答える 4

1

「チューブライン」プロパティ内にすべての個別のチューブラインのデータを配置することをお勧めします。

例えば:

{
    "tubelines": {
        "Bakerloo": {
            "stepfreetrain": true
        },
        "Northern": {
            "stepfreetrain": true
        }
    }
}

これにより、各チューブ ラインの JSON "ツリー" を走査してそのデータを見つけることができるため、データの検索が容易になります。

また、読みやすくするために、配列 (Location[0]、Location[1]) を使用するよりも、「Location」(Location.lat、Location.long) の個別のプロパティとして座標「lat」と「long」に名前を付ける方が簡単だと思います。データ入力時のミスの可能性を排除します。

于 2013-08-21T09:15:30.857 に答える
0

地下鉄駅の数 ( 270 ?)を考えると、特定のデータ配置が優れていることに気付かないのではないかと思います。単純な反復は、事実上すべてのプラットフォームでほとんど目立ちません。

私はむしろ (相変わらず) コードを読みやすく、管理/保守しやすくすることに専念し、特定のパフォーマンスの問題が発生したときに心配します。

于 2013-08-21T09:05:36.407 に答える