簡體   English   中英

為什么我的 age[i] 未定義?

[英]Why I am getting age[i] as undefined?

在這里,我將描述我的問題,即為什么我在控制台時將age[i]=a為 undefined

在此處輸入圖像描述

 const birthYear = [1996, 1997, 1998, 1999] function calc(Year) { age = 2022 - Year; return age } var age = [] age[0] = 123; console.log(age[0]) for (i = 0; i <= birthYear.length - 1; i++) { var a = calc(birthYear[i]) /* if you want to return the value of any function you have to address it the help of any agruement otherwise it will show you a function body */ age[i] = a // console.log console.log(age[i]) } // console.log(age[])

問題是您使用 calc 返回“age”並且還稱您的數組為“age”。 因此,數組每次都會被替換,並且您會變得“未定義”。

嘗試這個:

const birthYear=[1996,1997,1998,1999]

function calc(Year) {
    age=2022-Year;
    return age
}

var ageArr = [];

for(var i = 0 ; i < birthYear.length ; i++){
    ageArr[i] = calc(birthYear[i])
    console.log(ageArr[i]);
}

為什么我的 age[i] 未定義?

您已經使用 var 關鍵字來聲明年齡數組,現在年齡成為全局變量,因此當您調用 calC function 時,它將數組轉換為數字age=2022-Year; 執行此語句后。 這就是 age[i] 未定義的原因。 現在正確的方法是什么,只需在 calc function 中聲明 ageCount 並返回它,就像這樣

 const birthYear=[1996,1997,1998,1999]
 function calc(Year) 
 {
   //instead of using 2022, you fetch current year from date object
   let ageCount=2022-Year;
   return ageCateCount
}
var age=[]
age[0]=123;
console.log(age[0])

for(i=0;i<=birthYear.length-1;i++){
   age[i]=calc(birthYear[i]);
// console.log

         console.log(age[i])
}

 const birthYear = [1996, 1997, 1998, 1999] function calc(Year) { let ageCount = new Date().getFullYear() - Year; return ageCount } var age = [] age[0] = 123; console.log(age[0]) for (i = 0; i <= birthYear.length - 1; i++) { var a = calc(birthYear[i]) /* if you want to return the value of any function you have to address it the help of any agruement otherwise it will show you a function body */ age[i] = a // console.log console.log(age[i]) }

希望這會有所幫助!

如果我對要求的理解正確,你想找出 2022 年與birthYear數組中年份的差異。 如果是,您可以使用一行代碼簡單地實現這一點,而不是讓它變得復雜。

演示

 const birthYear = [1996, 1997, 1998, 1999]; const age = birthYear.map(year => 2022 - year); console.log(age);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM