JavaScript
var skill = [
//[ID, "NAME", TMLEVEL, Learn, Mastery, Prerequisite, PrerequisiteLvl],
[0, "Steel Punch", 0, 0, 0, null, null],
[1, "Shockwave", 1, 1, 2, null, null],
[2, "Bull's Eye", 10, 2, 2, 7, null],
[3, "Burning Rave", 20, 2, 2, null, null],
[4, "Shockvibe", 20, 1, 2, null, null],
[5, "Sense Breaker",20, 1, 2, null, null],
[6, "Luck Breaker", 20, 1, 2, null, null],
[7, "Pumping Heart",25, 3, 3, 3, 1],
[8, "Armor Breaker",30, 2, 2, 7, 10],
[9, "Upper Smash", 40, 2, 2, 2, 10],
[10,"Hyper Beat", 45, 4, 3, [2,3], [10,10]],
[11,"Tornado Bomb", 50, 3, 3, 8, 1]
];
/////////////////////////////////////////////////////////////////////////
////////////////////// The functions ////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
Array.prototype.setPrerequisites = function(){
if (typeof this[5] === "number")
{
this[5]=skill[getPosOfSkill(this[5])];
this[5].setPrerequisites();
}
else if (this[5] instanceof Array)
{
if(this[5].isSkill()) this[5].setPrerequisites();
else
{
for(var i = 0; i < this[5].length; i++)
{
this[5][i]=skill[getPosOfSkill(this[5][i])];
this[5][i].setPrerequisites();
}
}
}
}
Array.prototype.isSkill = function(){
return this.length==7 && typeof this[1]==="string";
}
function getPosOfSkill(id){
for(var i=0; i<skill.length; i++) if(skill[i][0]==id) return i;
return false;
}
/////////////////////////////////////////////////////////////////////////
////////////////////////// Your code ////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
for(var i = 0; i < skill.length; i++) skill[i].setPrerequisites();
console.log(skill);