你好,我正在做一個遊戲的基本計算器,但我面臨一個問題,我剛開始學習這種編程語言閱讀我發現的所有教程,現在我只是做一些代碼,並獲得一些經驗,所以我寫了一個計算代碼,我之前在php中編寫的計算代碼工作完美,但我在那裏使用不同的技術,所以在JavaScript中我創建了一個函數,將被稱爲計算按鈕將被按下,並創建一個對象存儲的5名球員全部數據來看一看:Javascript的基本計算總是得到NaN
function count(){
function ninjas (name,dmg,dmgrate,dmggrow,speed,fury) {
this.name = name;
this.dmg = dmg;
this.dmgrate = dmgrate;
this.dmggrow = dmggrow;
this.speed = speed;
this.fury = fury;
}
var name = [];
var dmg = [];
var dmgrate = [];
var dmggrow = [];
var speed = [];
var fury = [];
var ninja = [];
for(var i = 0; i <5; i++){
name[name.length] = document.getElementById("ninja" + (i +1)).value;
dmg[dmg.length] = document.getElementById("dmg" + (i +1)).value;
dmgrate[dmgrate.length] = document.getElementById("dmgrate" + (i +1)).value;
dmggrow[dmggrow.length] = document.getElementById("dmggrow" + (i +1)).value;
speed[speed.length] = document.getElementById("speed" + (i +1)).value;
fury[fury.length] = 50;
ninja[i] = new ninjas(name[i],dmg[i],dmgrate[i],dmggrow[i],speed[i],fury[i]);
}
ninja.sort(function(a, b){return b.speed - a.speed});
var totaldmg;
var damagerate;
var damagegrow;
var furydmg;
for(var a = 0; a < 6; a++){ // 6 fight
for(var b = 0; b < 5; b++){ // 5 ninjas
if(ninja[b].name == "Kabuto"){
if(ninja[b].fury == 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
furydmg = damagegrow + (damagegrow/100) * ((ninja[b].fury - 100)/0.25);
totaldmg += furydmg;
for(var c = 0; c < 5; c++){ // add fury each ninja by 25
ninja[c].fury +=25;
}
ninja[b].fury -= 25;
ninja[b].fury +=100;
}else if(ninja[b].fury > 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
totaldmg += damagegrow;
for(var c = 0; c < 5; c++){// add fury each ninja by 25
ninja[c].fury +=25;
}
ninja[b].fury -= 25;
ninja[b].fury +=100;
}else {
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
totaldmg += damagerate;
ninja[b].fury += 50;
}
} else {
if(ninja[b].fury == 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
totaldmg += damagegrow;
ninja[b].fury = 0;
}else if(ninja[b].fury > 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
furydmg = damagegrow + (damagegrow/100) * ((ninja[b].fury - 100)/0.25);
totaldmg += furydmg;
ninja[b].fury = 0;
}else {
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
totaldmg += damagerate;
ninja[b].fury += 50;
}
}
}
}
document.getElementById("result").innerHTML = totaldmg;
};
我用幾個循環的所有數據存儲在自己的地方,然後每一步我做了車後的速度屬性使用功能的短短大家CK如果一切都好,但最終以某種方式,我仍然有結果這是NaN有人可以幫助我解決這個問題我檢查了我的代碼多次,但可以找到哪裏是錯誤的,也許有一些我不知道一個JavaScript和錯過
嘗試將問題壓縮爲[mcve],它不僅可以幫助我們,還可以幫助您理解問題的來源 – BeyelerStudios
您正在對字符串執行數學運算。 –
[歡迎使用JavaScript](https://www.destroyallsoftware.com/talks/wat) – Nixon