連想配列オブジェクトの行列入替(縦横入替)



行列入替(hashMatrixChange)


もう一度、行列入替(hashMatrixChangeRev)

関数

/**
 * 連想配列オブジェクトの行列入替(縦横入替)
 * @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;
}