gpt4 book ai didi

javascript - 未定义,它不计数,不工作为什么

转载 作者:行者123 更新时间:2023-12-02 14:05:53 25 4
gpt4 key购买 nike

我编写了一个脚本来计算从我们的生日算起已经过去了多少天,但是当它显示它说未定义时,我不知道为什么,我没有看到问题,也许你可以帮助我。

    var dzien = prompt("Podaj dzień urodzin: ");
var miesiac = prompt("Podaj miesiąc urodzin: ");
var rok = prompt("Podaj rok urodzin: ");

var data = new Date(); //Funkcja w js
var today = data.getDate(); //Pobranie dnia (numer 1->31)
var month = data.getMonth() + 1; //Pobranie miesiąca, w js 0-11 -> dlatego jest +1

var finalR = 0;
if ( month == 1 ) {
var finalR = styczen.iledni/1 + today/1;
} else if ( month == 2) {
var finalR = luty.iledni/1 + today/1;
} else if ( month == 3) {
var finalR = marzec.iledni/1 + today/1;
} else if ( month == 4) {
var finalR = kwiecien.iledni/1 + today/1;
} else if ( month == 5) {
var finalR = maj.iledni/1 + today/1;
} else if ( month == 6) {
var finalR = czerwiec.iledni/1 + today/1;
} else if ( month == 7) {
var finalR = lipiec.iledni/1 + today/1;
} else if ( month == 8) {
var finalR = sierpien.iledni/1 + today/1;
} else if ( month == 9) {
var finalR = wrzesien.iledni/1 + today/1;
} else if ( month == 10) {
var finalR = pazdziernik.iledni/1 + today/1;
} else if ( month == 11) {
var finalR = listopad.iledni/1 + today/1;
} else if ( month == 12) {
var finalR = grudzien.iledni/1 + today/1;
}

if (dzien > 31 || miesiac > 12 || rok > 2016 || dzien <= 0 || miesiac <= 0 || rok <= 0) {
if(dzien > 31 || dzien <= 0){
alert("Nie ma takiego dnia miesiąca! Podaj jeszcze raz.");
var dzien = prompt("Podaj dzień: ");
}
if(miesiac > 12 || miesiac <= 0){
alert("Nie ma takiego miesiąca! Podaj jeszcze raz.");
var miesiac = prompt("Podaj miesiąc: ");
}
if(rok > 2016 || rok <= 0){
alert("Kłamiesz! Podaj prawdziwy rok urodzenia.");
var rok = prompt("Podaj rok: ");
}
}
if (isNaN(dzien) || isNaN(rok)) {
if (isNaN(dzien)){
alert('Musisz wpisać liczbę!');
var dzien = prompt("Podaj dzień: ");
}
if (isNaN(rok)){
alert('Musisz wpisać liczbę!');
var rok = prompt("Podaj rok: ");
}
}

var styczen = { nazwa: "Styczeń", iloscDni: 31, ilezostalo: 335, iledni: 0 };
var luty = { nazwa: "Luty", iloscDni: 29, ilezostalo: 306, iledni: 31 };
var marzec = { nazwa: "Marzec", iloscDni: 31, ilezostalo: 275, iledni: 60 };
var kwiecien = { nazwa: "Kwiecień", iloscDni: 30, ilezostalo: 245, iledni: 91 };
var maj = { nazwa: "Maj", iloscDni: 31, ilezostalo: 214, iledni: 121 };
var czerwiec = { nazwa: "Czerwiec", iloscDni: 30, ilezostalo: 184, iledni: 152 };
var lipiec = { nazwa: "Lipiec", iloscDni: 31, ilezostalo: 153, iledni: 182 };
var sierpien = { nazwa: "Sierpień", iloscDni: 31, ilezostalo: 122, iledni: 213 };
var wrzesien = { nazwa: "Wrzesień", iloscDni: 30, ilezostalo: 92, iledni: 244 };
var pazdziernik = { nazwa: "Październik", iloscDni: 31, ilezostalo: 61, iledni: 274 };
var listopad = { nazwa: "Listopad", iloscDni: 30, ilezostalo: 31, iledni: 305 };
var grudzien = { nazwa: "Grudzień", iloscDni: 31, ilezostalo: 0, iledni: 335 };

var miesiace = { ilosc: 12 };

var lata = { obecnyRok: 2016, ile: 365 };

if ( miesiac == styczen.nazwa || miesiac == "styczen" || miesiac == "styczeń" || miesiac == 1 ){

var daysLeft = styczen.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = styczen.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == luty.nazwa || miesiac == "luty" || miesiac == 2){

var daysLeft = luty.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = luty.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == marzec.nazwa || miesiac == "marzec" || miesiac == 3){

var daysLeft = marzec.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = marzec.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == kwiecien.nazwa || miesiac == "kwiecień" || miesiac == "kwiecien" || miesiac == 4){

var daysLeft = kwiecien.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = kwiecien.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == maj.nazwa || miesiac == "maj" || miesiac == 5){

var daysLeft = maj.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = maj.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == czerwiec.nazwa || miesiac == "czerwiec" || miesiac == 6){

var daysLeft = czerwiec.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = czerwiec.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == lipiec.nazwa || miesiac == "lipiec" || miesiac == 7){

var daysLeft = lipiec.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = lipiec.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + finalR/1 + (yearsLeft * 365);

} else if ( miesiac == sierpien.nazwa || miesiac == "sierpien" || miesiac == "sierpień" || miesiac == 8){

var daysLeft = sierpien.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = sierpien.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == wrzesien.nazwa || miesiac == "wrzesień" || miesiac == "wrzesien" || miesiac == 9){

var daysLeft = wrzesien.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = wrzesien.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == pazdziernik.nazwa || miesiac == "październik" || miesiac == "pazdziernik" || miesiac == 10){

var daysLeft = pazdziernik.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = pazdziernik.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == listopad.nazwa || miesiac == "listopad" || miesiac == 11){

var daysLeft = listopad.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = listopad.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;

} else if ( miesiac == grudzien.nazwa || miesiac == "grudzień" || miesiac == "grudzien" || miesiac == 12){

var daysLeft = grudzien.iloscDni - dzien;
var yearsLeft = lata.obecnyRok - rok - 1;
var monthsLeft = grudzien.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;
}

它基本上是波兰语,但是,styczen - 一月,luty - 二月..

最佳答案

第一个错误是您声明并分配了 finalR 变量,然后重复声明并分配了仅在语句内可见的同一变量,因此在第一个 if 您只需将值分配给 finalR

var finalR = styczen.iledni/1 + today/1;

成为:

finalR = styczen.iledni/1 + today/1;

以及所有声明。

然后,styczen 以及您在此语句中分配给 finalR 的所有其他变量在您粘贴的代码中都未定义。您需要将所有这些 block 移到 if 语句之前。

var styczen      = {  nazwa: "Styczeń",      iloscDni: 31, ilezostalo: 335, iledni:  0    };
var luty = { nazwa: "Luty", iloscDni: 29, ilezostalo: 306, iledni: 31 };

最后一个 if 语句中的每个声明都是不必要的。您可以在外部声明每个变量,然后在内部分配它们。如果您需要默认值,您也可以声明并分配它们。

在最后一个 if rok 也未定义的情况下,dzien 将永远不会有你所关注的内容,因为你试图重新分配 dzien 变量,但你在外面的语句中重新声明它没有外部范围。

这部分的很多内容都是相同的,您可以为最终语句创建一个函数并使用它:

var yourfunc = function(arg1, arg2, arg3, lata, finalR) {
var daysLeft = arg1.iloscDni - arg2;
var yearsLeft = lata.obecnyRok - arg3 - 1;
var monthsLeft = arg1.ilezostalo/1 + daysLeft/1;
var finalResult = monthsLeft/1 + (yearsLeft * 365) + finalR/1;
}

要查找问题所在,您可以在每个浏览器上使用 js 调试器。

最后@Teemu的评论是对的。

关于javascript - 未定义,它不计数,不工作为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40048244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com