id | name | value1 | value2 |
---|---|---|---|
1 | neko | 101 | 1001 |
2 | nezumi | 202 | 2002 |
3 | usi | 303 | 3003 |
4 | tora | 404 | 4004 |
5 | u | 505 | 5005 |
行列入替(hashMatrixChange)
1 | 2 | 3 | 4 | 5 |
neko | nezumi | usi | tora | u |
101 | 202 | 303 | 404 | 505 |
1001 | 2002 | 3003 | 4004 | 5005 |
もう一度、行列入替(hashMatrixChangeRev)
id | name | value1 | value2 |
---|---|---|---|
1 | neko | 101 | 1001 |
2 | nezumi | 202 | 2002 |
3 | usi | 303 | 3003 |
4 | tora | 404 | 4004 |
5 | u | 505 | 5005 |
関数
/** * 連想配列オブジェクトの行列入替(縦横入替) * @param hash 連想配列オブジェクト * @return 行列が入れ替わった連想配列 */ function hashMatrixChange(hash){ var obj={}; for(var k in hash[0]){ obj[k]={}; } for(var i in hash){ var ent=hash[i]; for(var k in ent){ var v=ent[k]; obj[k][i]=v; } } return obj; } /** * 連想配列オブジェクトの行列入替(縦横入替)リバース * @param hash 連想配列オブジェクト * @return 行列が入れ替わった連想配列 */ function hashMatrixChangeRev(hash){ var obj={}; var fk=''; for(var k in hash){ fk=k; break; } for(var i in hash[fk]){ obj[i]={}; } for(var k in hash){ var list=hash[k]; for(var i in list){ var v=list[i]; obj[i][k]=v; } } return obj; }