2016-05-10 19 views
0

私はjqueryを初めて使用しています。私はjquery約束から配列関数の戻り値を得るのに苦労しています。関数は未定義を返しますが、配列の戻り値が必要です。誰でも私がなぜ未定義のリターンを得ているのかヒットできますか?ありがとう未定義関数からの戻り値jquery

var actualData = $.getJSON('https://opendata-download-metfcst.smhi.se/api/category/pmp1.5g/version/1/geopoint/lat/58.59/lon/16.18/data.json') 

function getWinddirection() { 
    let windValue = []; 
    actualData.then(function(result) { 
    $.each(result["timeseries"], function(i, Daydata) { 
     for (var i = 0; i < Daydata.length; ++i) { 
     if (Daydata[i].validTime.split("T")[1] == "12:00:00Z") { 
      return windValue.push(Daydata[i].wd) 
     } else {} 
     } 
    }) 
    }).then(function(windValue) { 
    return windValue; 
    }) 
} 

答えて

0

windValueを$に戻すと、スコープの機能にはもう反映されません。

最初のthenの最後に、次の約束の戻り値がないため、windValueはundefinedです。

windValueを$内に戻す必要はありません。繰り返しを完了してから2番目の値を返す必要があります。

function getWinddirection() { 
    //first change 
    var windValue = []; 
    actualData.then(function(result) { 
    $.each(result["timeseries"], function(i, Daydata) { 
     for (var i = 0; i < Daydata.length; ++i) { 
     if (Daydata[i].validTime.split("T")[1] == "12:00:00Z") { 
      //second modification 
      windValue.push(Daydata[i].wd) 
     } else {} 
     } 
    }) 
    //third modification 
    return windValue; 
    }).then(function(windValue) { 
    return windValue; 
    }) 
} 
+0

関数の戻り値はまだ定義されていません –

+0

スコープの機能を変更するかどうかはわかりません。 'let'キーワードがスコープに関連している場合、' var'で 'let'を変更しようとするかもしれません。私は自分のコードを編集する。 –

関連する問題