data
のプロパティが入力に対応する項目が見つかるまで、埋め込み配列をループしています。jQueryで埋め込み配列のfind()を使用する。
以下の例は、オランダに警告する必要があります。代わりに、あなたがundefined
を取得し、2番目の配列から1つを選択するとオブジェクトを取得する場合、最初の配列の項目を使用するとき。
var countries = {
"EU": [
{value: 'Malta', data: 'MT'},
{value: 'Netherlands', data: 'NL'},
{value: 'Austria', data: 'AT'},
{value: 'Italy', data: 'IT'}
],
"other": [
{value: 'Bosnia and Herz.', data: 'BA'},
{value: 'Jersey', data: 'JE'},
{value: 'Belarus', data: 'BY'}
]
};
function findCountry(code) {
$.each(countries, function(key, arr) {
val = arr.find(function(obj) {
return obj.data == code;
});
});
return val;
}
alert(findCountry('NL'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
だから私は、アイテムが最初の配列で発見された場合でも、each
が稼働し続けると思います。おそらくreturn文が代わりに必要です。しかし、その後も、
var countries = {
"EU": [
{value: 'Malta', data: 'MT'},
{value: 'Netherlands', data: 'NL'},
{value: 'Austria', data: 'AT'},
{value: 'Italy', data: 'IT'}
],
"other": [
{value: 'Bosnia and Herz.', data: 'BA'},
{value: 'Jersey', data: 'JE'},
{value: 'Belarus', data: 'BY'}
]
};
function findCountry(code) {
$.each(countries, function(key, arr) {
return arr.find(function(obj) {
return obj.data == code;
});
});
}
alert(findCountry('BA'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
しかし、これはundefined
すべての時間を返します。それで私は何が欠けているのですか?
問題は 'findCountryは()'あなたが構築する必要があります(「地域」ではなく)国を探している場合ので、それは – doublesharp
undefined' 'で、ノーリターンを持っていないということです国名をキーとし、地域をサブオブジェクトの一部のプロパティとして持つオブジェクト。次に、オブジェクトのプロパティ全体を検索するのではなく、if(countries ['Malta'])をチェックしてください。 – James
@James私は構造を変更することができたら残念ながら、私はこの特定の構造を必要とするプラグインを使用しています。 –