2011-12-20 5 views
0

JavaScriptを使用してデータを保存してアクセスするには、どのような方法が良いか把握しようとしています。javascriptでデータセットにアクセスして保存する

「識別子」に関連付けられたデータを選択します。値は不明です。新しいランダムな「識別子」を持つデータセットを追加します。

これは配列やオブジェクトで行いますか?

アレイストレージ

{ 
"data": [ 
    { 
     "key1": "identfifier1", 
     "key2": "value2", 
     "key3": "value3" 
    }, 
    { 
     "key1": "identfifier2", 
     "key2": "value2", 
     "key3": "value3" 
    } 
] 
} 
  • アレイは、JSにorderdとどまります。私は画面上にそのデータを表示したいので、これは重要です。 「識別子」とasscoictatedデータセットの
  • より複雑な選択

オブジェクト記憶

{ 
"data": { 
    "identfifier1": { 
     "key1": "value1", 
     "key2": "value2", 
     "key3": "value3" 
    }, 
    "identfifier2": { 
     "key1": "value1", 
     "key2": "value2", 
     "key3": "value3" 
    } 
} 
} 
(ループのいくつかの種類や含有するヘルパーメソッドは、例えばdata.containing(「識別子」)。KEY2必要とされます)
  • (私はデータの各出力の前にオブジェクト全体をソートする必要があります)簡単かつ迅速なSelectI
    • オブジェクトは、jsの中でorderdに滞在していませんが、それが画面上に表示するためのデータbecuase私のために重要です(識別子の入ったデータセットを検索するためのループやヘルパーメソッドはありません)

    これを行うにはどのようなアイデア、方法、最良の方法ですか?他のものよりも良い方法ですか?

  • +0

    このデータはどこから来ていますか?サーバ側?サーバーからの –

    +0

    はい、一部のユーザーは、いくつかの操作を追加または削除し、それを送り返すかもしれません。それはすべてJSONになります。 – Hans

    答えて

    1

    JSONを使用します(2番目の方法)。これはその目的のためのものであり、あなたの仕事をサポートする多くのネイティブ関数と追加ライブラリがあります。オブジェクトを変換することなく、データベース(CouchDBやMongoDBなど)を簡単に使用できます。

    +0

    は私の質問を編集しましたが、今は最初のものがJSONです... – Hans

    1

    書き込みより多くの読み取りを行う場合は、オブジェクトを使用し、必要に応じてソートできるオブジェクトキーの別の配列を保持することをお勧めします。

    data = { 
        identfifier1 : { key1: value1, 
          key2: value2, 
          key3: value3 
          }, 
        identfifier2 : { key1: value1, 
          key2: value2, 
          key3: value3 
          } 
    } 
    

    そして、あなたは新しいキーを追加します。

    data.identifier3 = ... 
    

    更新順序:

    var sorted = Object.keys(data).sort(); 
    

    注文方法で反復する:

    for(var l = sorted.length, i = 0; i < l; ++i) { 
        alert(data[sorted[i]]); 
    } 
    

    それとも可能性があり、単に絶対に必要なときだけソートする彼のやり方でさえ、より演奏されるでしょう。

    これは、読み込みと読み込みが高速で、必要なときにのみ高速なラッパー「クラス」を作成することができます。

    関連する問題