2017-08-03 6 views
-1

私のオブジェクト上にデータが存在し、このコードが期待どおりに機能するかどうか検索しようとしていますが、結果を表示するときに問題があります。私のオブジェクトにあるすべてのインデックスを表示します。結果は私のオブジェクトのjQueryを使用した以外はデータが見つかった場合にjsonのループを停止する方法

$(document).ready(function(){ 
 
\t var myData = { 
 
\t \t "animals":[{ 
 
\t \t \t "name":"cat" 
 
\t \t }, 
 
\t \t { 
 
\t \t \t "name":"dog" 
 
\t \t }, 
 
\t \t { 
 
\t \t \t "name":"horse" 
 
\t \t }, 
 
\t \t { 
 
\t \t \t "name":"bear" 
 
\t \t } 
 
\t \t ]}; 
 

 
\t $('#send').click(function(){ 
 
\t \t var res = $('#animal').val(); 
 
\t \t 
 
\t \t $.each(myData.animals, function(i,j){ 
 
\t \t \t if(j.name == res){ 
 
\t \t \t \t console.log('found'); 
 
\t \t \t } 
 
\t \t \t else{ 
 
\t \t \t \t console.log('not found'); 
 
\t \t \t } 
 
\t \t }); 
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="myData"> 
 
\t <input type="text" id='animal'> 
 
\t <button id='send'>find</button> 
 
</div>

+1

代わりのループを停止しようとしてを満たす配列の最初の要素の値を返しますフィルターなどのタスクに適した方法。 http://api.jquery.com/filter/#filter-elements – Taplar

+1

それぞれの使用を中断するには 'return false;'を使います。 – Satpal

答えて

1

$(document).ready(function() { 
 
    var myData = { 
 
    "animals": [ 
 
     { 
 
     "name": "cat" 
 
     }, 
 
     { 
 
     "name": "dog" 
 
     }, 
 
     { 
 
     "name": "horse" 
 
     }, 
 
     { 
 
     "name": "bear" 
 
     } 
 
    ] 
 
    }; 
 

 
    $('#send').on('click', function() { 
 
    var res = $('#animal').val(); 
 
    
 
    var foundAnimal = myData.animals.find(function(animal){ 
 
     return animal.name === res; 
 
    }); 
 
    
 
    console.log('Animal Found: '+ !!foundAnimal); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="myData"> 
 
\t <input type="text" id='animal'> 
 
\t <button id='send'>find</button> 
 
</div>

1

で発見された場合、私はループを停止する方法

、あなたもarray#findを使用することができます。

find()メソッドは、使用、提供テスト機能

const myData = {"animals":[{"name":"cat"},{"name":"dog"},{"name":"horse"},{"name":"bear"}]}; 
 

 
const res = "horse"; 
 

 
var result = myData['animals'].find((animal) => { 
 
    return animal['name'] === res; 
 
}); 
 

 
console.log(result);

関連する問題