ワイズリマインダー

連想配列のソート(JAVASCRIPT編)

Keyの数値でソート

var hash=new Array();
hash['1']='8';
hash['50']='45';
hash['12']='1';
hash['7']='6';
var array=new Array();
for(var keys in hash){ array.push([keys,hash[keys]]); }
array.sort(function(a,b){ return(a[0]-b[0]); });

//[1,8],[7,6],[12,1],[50,45]

Valueの数値でソート

var hash=new Array();
hash['1']='8';
hash['50']='45';
hash['12']='1';
hash['7']='6';
var array=new Array();
for(var keys in hash){ array.push([keys,hash[keys]]); }
array.sort(function(a,b){ return(a[1]-b[1]); });

//[12,1],[7,6],[1,8],[50,45]

Keyの文字列でソート

var hash=new Array();
hash['g']='hoge';
hash['i']='piyo';
hash['o']='foo';
hash['a']='bar';
var array=new Array();
for(var keys in hash){ array.push([keys,hash[keys]]); }
array.sort(function(a,b){
  if(a[0].toString()>b[0].toString()){ return 1; }
  else{ return -1; }
});

// [‘a’,’bar’],[‘g’,’hoge’],[‘i’,’piyo’],[‘o’,’foo’]

Valueの文字列でソート

var hash=new Array();
hash['g']='hoge';
hash['i']='piyo';
hash['o']='foo';
hash['a']='bar';
var array=new Array();
for(var keys in hash){ array.push([keys,hash[keys]]); }
array.sort(function(a,b){
  if(a[1].toString()>b[1].toString()){ return 1; }
  else{ return -1; }
});
// ['a','bar'],['o','foo'],['g','hoge'],['i','piyo']

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください