私は JavaScript にはかなり慣れていませんが、長年のプログラマーであり、何が起こっているのか理解できません。
私はこれを持っています:
var MainTable = {
"k1": 0,
"k2": 9,
"k3": 20
};
そして、特定の要素にアクセスしたいとき:
var index = "k1";
var value = MainTable[index];
そして今、私にはまったくわからない理由で、毎回 0 ではなく undefined が返されます。私は約2時間それに取り組んでいますが、私はそれを理解していません.
ありがとう !
完全なコードで編集:
// These shouldn't be modified
var maxEPoints = 29;
var maxGold = 50;
var hudBarWidth_HR = 650; // 650 is for hr (px)
var hudBarWidth_LR = 350;
var IN_COMBAT = false;
var IN_COMBAT_WAITING = false;
var WolfDamageTable =
{
"m11_1": 99,
"m11_2": 99,
"m11_3": 8,
"m11_4": 8,
"m11_5": 7,
"m11_6": 6,
"m11_7": 5,
"m11_8": 4,
"m11_9": 3,
"m11_10": 0,
};
var EnemyDamageTable =
{
"m11_1": 0,
"m11_2": 0,
"m11_3": 0,
"m11_4": 0,
"m11_5": 1,
"m11_6": 2,
"m11_7": 3,
"m11_8": 4,
"m11_9": 5,
"m11_10": 6,
};
function ComputeCombatDamage( aPoints, ePoints, skill, endurance )
{
var ratio = ( aPoints - parseInt( skill ) ).toString();
var absRatio = ( aPoints - parseInt( skill ) );
var randVal = GIMME_A_RANDOM().toString();
$( "td#tableWolfSkill" ).html( aPoints.toString() );
$( "td#tableWolfEndurance" ).html( ePoints.toString() );
$( "td#ratio" ).html( ratio.toString() + " / " + randVal.toString() );
// ... code where I process the string index
var eDamage = EnemyDamageTable[eIndex]; // -> problem
var wDamage = WolfDamageTable[wIndex];
var wolfEndurance = ePoints - wDamage;
var enemyEndurance = endurance - eDamage;
var barWidth = ( wolfEndurance / maxEPoints ) * hudBarWidth_HR;
IN_COMBAT = wolfEndurance > 0 && enemyEndurance > 0;
return IN_COMBAT;
}
/*********************************************************************
* custom function to initiate the battle sequence
*********************************************************************/
function LoadBattle()
{
IN_COMBAT = true;
var aPoints = 0;
var ePoints = 0;
var gold = 0;
var name = $( "span#enemyName" ).html();
var skill = $( "span#enemySkill" ).html();
var endurance = $( "span#enemyEndurance" ).html();
if( skill.length == 0 ||
endurance.length == 0 )
{
alert( "Content is not properly formated for combat!" );
return;
}
window.location = "#fight_start";
// Set up the table before showing it
$( "td#tableEnemyName" ).html( name );
$( "td#tableEnemySkill" ).html( skill );
$( "td#tableEnemyEndurance" ).html( endurance );
var keepGoing = true;
while( IN_COMBAT )
{
if( typeof( Storage ) !== "undefined" )
{
aPoints = localStorage.aPoints;
ePoints = localStorage.ePoints;
}
keepGoing = ComputeCombatDamage( aPoints, ePoints, skill, endurance );
//endurance = $( "td#enemyResultEndurance" ).html();
if( keepGoing == false )
{
break;
}
//WaitCombat();
}
}
私にはエラーが発生したようです
var eDamage = EnemyDamageTable[eIndex];
var wDamage = WolfDamageTable[wIndex];
のfunction ComputeCombatDamage
今は出来るだけ減らしました。