2016-08-06 1 views
2

によって私はのlocalStorageでいくつかのデータを入れている、と私は値順配列のキー名に取得する:のlocalStorageソート順は値

フランス:0
イタリア:1
イングランド: 2
ドイツ:3
...など

function getCountries() { 
    "use strict"; 
    var returnArray = []; 
    for (var i = 0; i < localStorage.length; i++) { 
     returnArray.push(localStorage.key(i)); 
    } 

    return returnArray; 
} 

は今、アレイ内のキー名の順序は、かなりランダムであるように思われる - 値で配列を注文する方法?

+0

これを見ましたか?http://stackoverflow.com/questions/3959817/html5-local-storage-sort – R4nc1d

+0

配列全体を1つのエントリにJSONとして入れることができます。 – gcampbell

答えて

1

複数の場所でソートする場合は、プロトタイプを作成できます。

Array.prototype.sortOnValue = function(key){ 
    this.sort(function(a, b){ 
     if(a[key] < b[key]){ 
      return -1; 
     }else if(a[key] > b[key]){ 
      return 1; 
     } 
     return 0; 
    }); 
} 

作成方法はfiddleです。

+0

非常に役立つヘルプ!私はこの設定には心配していません - どのように私は場所の配列から国名を取得するのですか?私は警戒arr [0]私は[オブジェクトオブジェクト]を取得しますか? –

+0

これで完璧に動作します - 正しく動作するためには、[key]とb [key]のまわりにparseIntがないことを追加してください;) –

+0

@TheSimon、私のフィドルとコードを更新してくれました。値が文字列かintかどうかはわかりません。 – R4nc1d

0
var countries = Object 
    .keys(localStorage) 
    .sort(function(a, b) { 
     return localStorage[a] - localStorage[b]; 
    })