0
我有一種感覺我錯過了一個明顯的觀點,但我已經嘗試了我所知道的所有方法,並且還研究了有關該主題的所有現有問題(其中大部分涉及異步調用)。爲什麼我的記錄值是正確的,但是當我返回時它是'未定義的'?
在下面的代碼中,我試圖找到匹配縮寫的國家。當我記錄結果時,我得到正確的結果 - 但是當我返回時,我得到undefined
。
var countries = [
{value: 'Belgium', data: 'BE'},
{value: 'France', data: 'FR'},
{value: 'Bulgaria', data: 'BG'},
{value: 'Denmark', data: 'DK'},
{value: 'Croatia', data: 'HR'},
{value: 'Germany', data: 'DE'},
];
function findCountry(code) {
$.each(countries, function (i, obj) {
if (obj.data === code) {
console.log(countries[i]['value']);
return countries[i]['value'];
}
});
}
var k = findCountry('DE');
alert(k);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我曾嘗試其他的事情:
countries[i].value;
obj.value;
obj['value'];
你的功能不返回任何東西,返回的是裏面的'$ .each',將沒有分配到任何東西。 –