首先,我是JavaScript新手,這是我的第一個使用該語言的「項目」,所以我提前爲自己的空想道歉。Javascript函數返回undefined
我在這個項目中使用傳單和D3,我似乎無法得到此函數返回除'未定義'之外的任何東西。起初我,雖然我不是從函數返回正確的,所以我試圖複製在較小的規模在這裏的錯誤:
然而,這對我的工作所以現在我什麼有點失落去做。
這裏是我的代碼一個簡單的版本,我試圖刪除似乎並不相關的一切,改變了名稱,以使其更易於理解:
$(function() {
...
function getThings(code) {
d3.csv("data.csv", function(data){
for (var i = 0, len = data.length; i < len; i++){
if (data[i].code == code){
alert("return 5!")
return 5;
}
else{
return 0;
}
}
})
}
L.geoJson(features, {
style: function (feature) {
return { opacity: 0, fillOpacity: 0.5, fillColor: "#0f0" };
},
onEachFeature: function(feature, layer){
var test = getThings(5);
alert(test);
...
我始終得到「迴歸5 !」警報,然後在警報(測試)我只是得到「未定義」。
有人知道我出錯了嗎? 在此先感謝!
雖然如此,如果OP在getThings功能使用'return','test'將被分配的非未定義的值(但不是數據)。 – user2864740
對。如果他正在做'return d3.csv()',我們會被退回,很可能是一個承諾。 – xbonez