簡體   English   中英

無法返回數組的元素

[英]Having trouble returning an element of an array

所以我正在做一個免費的在線JavaScript課程。 我正在上課2.它專注於數組,對象和事件。 我在測驗中做得很好,但不知道怎么做分配。 這是作業。

創建一個包含“January”到“December”的數組創建一個名為GetMonthName的函數,該函數將一個數字作為參數並返回該月份的名稱。 例如:

得到月(3); //將返回Month

請記住,數組從0開始編號,但在這里,第1個月應該是1月。 所以你必須以某種方式解釋這一點。

所以這是我的代碼。 我在正確的軌道上嗎? 任何幫助,將不勝感激。

//create array
var months = ["Month","January","February","March","April","May","June","July","August","September","October","November","December"];

//create function
function getMonthName(month) {
    for(i=0;i<=12;i++) {
        var getMonth=months[i];
        return getMonth;
    }
}

//call function
getMonthName(getMonth);

你不想在這里使用循環,因為你只返回一個月。 你可能想要這樣的東西:

function getMonthName(month) {
   var getMonth=months[month];
   return getMonth;
}

或者更簡單:

function getMonthName(month) {
   return months[month];
}

要處理0索引,您還可以從數組中刪除“月”,只需修改索引:

function getMonthName(month) {
   return months[month-1];
}

您不需要使用for循環,只需返回值

return months[i - 1];

您不需要在數組中包含“Month”。 嘗試做這樣的事情

//create array
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];

//create function
function getMonthName(month) {
    return months[month-1]
}

這樣,除了月份名稱之外,您不必向數組添加任何內容

您將在沒有任何條件的情況下從循環返回,因此您將始終返回數組中的第一個元素並停止循環。

如果它是使用循環的某種練習,那么你應該只在滿足條件時返回,比如

function getMonthName(month) {
    for(i=0;i<=12;i++) {
        var getMonth=months[i];
        if( i == month ){
            return getMonth;
        }
    }
}

但是如果你真的想通過它的索引從數組中得到一個月,並將它從1開始,那么getMonthName(1) == "January"則:

var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
function getMonthName(month) {
  return months[ month + 1 ];
}

讓我們看看你可以做些什么:

//create array
var months = ["Month","January","February","March","April","May","June","July","August","September","October","November","December"];

在函數首先我確保我的參數是整數然后我檢查傳遞的數字是否在1到12之間,最后我根據傳遞的數字減去一個返回所選月份。

//create function
function getMonthName(month) {
    month = (parseInt(month) || 0) -1;
    return month>0 && month<13 ? months[month] : null;
}

//call function
getMonthName(1);

 var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var getMonth = (function(index){ return this[index-1]; }).bind(months); var month = getMonth(1); document.getElementById('month').innerHTML = month; 
 <div id="month"></div> 

示例: https//jsfiddle.net/artamonovdev/s80rx6fg/

暫無
暫無

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

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